export type PutPet_textPlain_response200 = any;

/**
 * ## Category
 */
export interface Category {
  id?: number;

  name?: string;
}

/**
 * ## Tag
 */
export interface Tag {
  id?: number;

  name?: string;
}

/**
 * ## Status6
 * pet status in the store
 */
export enum PetStatusEnum {
  Available = "available",
  Pending = "pending",
  Sold = "sold"
}

/**
 * ## Pet
 * successful operation
 */
export interface Pet {
  name: string;

  photoUrls: Array<string>;

  id?: number;

  /**
   * ## Category
   */
  category?: Category;

  tags?: Array<Tag>;

  /**
   * ## Status6
   * pet status in the store
   */
  status?: PetStatusEnum;
}

/**
 * ## Pet
 * successful operation
 */
export interface PutPetRequest extends Pet {
  name: string;

  photoUrls: Array<string>;

  id?: number;

  /**
   * ## Category
   */
  category?: Category;

  tags?: Array<Tag>;

  /**
   * ## Status6
   * pet status in the store
   */
  status?: PetStatusEnum;
}

export type PostPet_textPlain_response200 = any;

/**
 * ## Pet
 * successful operation
 */
export interface PostPetRequest extends Pet {
  name: string;

  photoUrls: Array<string>;

  id?: number;

  /**
   * ## Category
   */
  category?: Category;

  tags?: Array<Tag>;

  /**
   * ## Status6
   * pet status in the store
   */
  status?: PetStatusEnum;
}

/**
 * ## Status6
 * pet status in the store
 */
export enum Status6 {
  Available = "available",
  Pending = "pending",
  Sold = "sold"
}

/**
 * Status values that need to be considered for filter
 */
export interface GetPetFindByStatusParameters {
  status: Array<Status6>;
}

/**
 * successful operation
 */
export type GetPetFindByStatus_response200 = Array<Pet>;

/**
 * Tags to filter by
 */
export interface GetPetFindByTagsParameters {
  tags: Array<string>;
}

/**
 * successful operation
 */
export type GetPetFindByTags_response200 = Array<Pet>;

/**
 * ID of pet to return
 */
export interface GetPetPetIdParameters {
  petId: number;
}

/**
 * ## Pet
 * successful operation
 */
export interface GetPetPetId_response200 extends Pet {
  name: string;

  photoUrls: Array<string>;

  id?: number;

  /**
   * ## Category
   */
  category?: Category;

  tags?: Array<Tag>;

  /**
   * ## Status6
   * pet status in the store
   */
  status?: PetStatusEnum;
}

/**
 * Updated status of the pet
 */
export interface PostPetPetIdParameters {
  petId: number;

  name?: string;

  status?: string;
}

export type PostPetPetId_textPlain_response200 = any;

/**
 * Pet id to delete
 */
export interface DeletePetPetIdParameters {
  petId: number;

  api_key?: string;
}

export type DeletePetPetId_textPlain_response200 = any;

/**
 * file to upload
 */
export interface PostPetPetIdUploadImageParameters {
  petId: number;

  additionalMetadata?: string;

  file?: {
    [key: string]: any;
  };
}

/**
 * ## ApiResponse
 * successful operation
 */
export interface ApiResponse {
  code?: number;

  type?: string;

  message?: string;
}

/**
 * ## ApiResponse
 * successful operation
 */
export interface PostPetPetIdUploadImage_response200 extends ApiResponse {
  code?: number;

  type?: string;

  message?: string;
}

/**
 * successful operation
 */
export type GetStoreInventory_textPlain_response200 = number;

/**
 * ## Status
 * Order Status
 */
export enum OrderStatusEnum {
  Placed = "placed",
  Approved = "approved",
  Delivered = "delivered"
}

/**
 * ## Order
 * successful operation
 */
export interface Order {
  id?: number;

  petId?: number;

  quantity?: number;

  shipDate?: string;

  /**
   * ## Status
   * Order Status
   */
  status?: OrderStatusEnum;

  complete?: any;
}

/**
 * ## Order
 * successful operation
 */
export interface PostStoreOrder_response200 extends Order {
  id?: number;

  petId?: number;

  quantity?: number;

  shipDate?: string;

  /**
   * ## Status
   * Order Status
   */
  status?: OrderStatusEnum;

  complete?: any;
}

/**
 * ## Order
 * successful operation
 */
export interface PostStoreOrderRequest extends Order {
  id?: number;

  petId?: number;

  quantity?: number;

  shipDate?: string;

  /**
   * ## Status
   * Order Status
   */
  status?: OrderStatusEnum;

  complete?: any;
}

/**
 * ID of pet that needs to be fetched
 */
export interface GetStoreOrderOrderIdParameters {
  orderId: number;
}

/**
 * ## Order
 * successful operation
 */
export interface GetStoreOrderOrderId_response200 extends Order {
  id?: number;

  petId?: number;

  quantity?: number;

  shipDate?: string;

  /**
   * ## Status
   * Order Status
   */
  status?: OrderStatusEnum;

  complete?: any;
}

/**
 * ID of the order that needs to be deleted
 */
export interface DeleteStoreOrderOrderIdParameters {
  orderId: number;
}

export type DeleteStoreOrderOrderId_textPlain_response200 = any;

export type PostUser_textPlain_response200 = any;

/**
 * ## User
 * Updated user object
 */
export interface User {
  id?: number;

  username?: string;

  firstName?: string;

  lastName?: string;

  email?: string;

  password?: string;

  phone?: string;

  /**
   * User Status
   */
  userStatus?: number;
}

/**
 * ## User
 * Updated user object
 */
export interface PostUserRequest extends User {
  id?: number;

  username?: string;

  firstName?: string;

  lastName?: string;

  email?: string;

  password?: string;

  phone?: string;

  /**
   * User Status
   */
  userStatus?: number;
}

export type PostUserCreateWithArray_textPlain_response200 = any;

/**
 * List of user object
 */
export type PostUserCreateWithArrayRequest = Array<User>;

export type PostUserCreateWithList_textPlain_response200 = any;

/**
 * List of user object
 */
export type PostUserCreateWithListRequest = Array<User>;

/**
 * The password for login in clear text
 */
export interface GetUserLoginParameters {
  username: string;

  password: string;
}

/**
 * successful operation
 */
export type GetUserLogin_textPlain_response200 = string;

export type GetUserLogout_textPlain_response200 = any;

/**
 * The name that needs to be fetched. Use user1 for testing.
 */
export interface GetUserUsernameParameters {
  username: string;
}

/**
 * ## User
 * Updated user object
 */
export interface GetUserUsername_response200 extends User {
  id?: number;

  username?: string;

  firstName?: string;

  lastName?: string;

  email?: string;

  password?: string;

  phone?: string;

  /**
   * User Status
   */
  userStatus?: number;
}

/**
 * name that need to be updated
 */
export interface PutUserUsernameParameters {
  username: string;
}

export type PutUserUsername_textPlain_response200 = any;

/**
 * ## User
 * Updated user object
 */
export interface PutUserUsernameRequest extends User {
  id?: number;

  username?: string;

  firstName?: string;

  lastName?: string;

  email?: string;

  password?: string;

  phone?: string;

  /**
   * User Status
   */
  userStatus?: number;
}

/**
 * The name that needs to be deleted
 */
export interface DeleteUserUsernameParameters {
  username: string;
}

export type DeleteUserUsername_textPlain_response200 = any;
