{
    "swagger": "2.0",
    "info": {
      "title": "Multiple Inheritance Service Client",
      "description": "Service client for multiinheritance client testing",
      "version": "3.0.0"
    },
    "host": "localhost:3000",
	"schemes": [
		"http"
    ],
    "consumes": ["application/json"],
    "produces": ["application/json"],
    "paths": {
        "/multipleInheritance/horse": {
            "get": {
                "operationId": "getHorse",
                "description": "Get a horse with name 'Fred' and isAShowHorse true",
                "responses": {
                    "200": {
                        "description": "Horse with name 'Fred' and isAShowHorse true",
                        "schema": {
                            "$ref": "#/definitions/Horse"
                        }
                    },
                    "default": {
                        "description": "Unexpected error",
                        "schema": {
                            "$ref": "#/definitions/Error"
                        }
                    }
                }
            },
            "put": {
                "operationId": "putHorse",
                "description": "Put a horse with name 'General' and isAShowHorse false",
                "parameters": [
                    {
                        "name": "horse",
                        "in": "body",
                        "description": "Put a horse with name 'General' and isAShowHorse false",
                        "schema": {
                            "$ref": "#/definitions/Horse"
                        },
                        "required": true
                    }
                ],
                "responses": {
				    "200": {
                        "description": "Received correct format",
                        "schema": {
                            "type": "string"
                        }
				    }
				}
            }
        },
        "/multipleInheritance/pet": {
            "get": {
                "operationId": "getPet",
                "description": "Get a pet with name 'Peanut'",
                "responses": {
                        "200": {
                            "description": "Pet with name 'Peanut'",
                        "schema": {
                            "$ref": "#/definitions/Pet"
                        }
                    },
                    "default": {
                        "description": "Unexpected error",
                        "schema": {
                            "$ref": "#/definitions/Error"
                        }
                    }
                }
            },
            "put": {
                "operationId": "putPet",
                "description": "Put a pet with name 'Butter'",
                "parameters": [
                    {
                        "name": "pet",
                        "in": "body",
                        "description": "Put a pet with name 'Butter'",
                        "schema": {
                            "$ref": "#/definitions/Pet"
                        },
                        "required": true
                    }
                ],
                "responses": {
				    "200": {
                        "description": "Received correct format",
                        "schema": {
                            "type": "string"
                        }
				    }
				}
            }
        },
        "/multipleInheritance/feline": {
            "get": {
                "operationId": "getFeline",
                "description": "Get a feline where meows and hisses are true",
                "responses": {
                        "200": {
                            "description": "Feline where meows and hisses are true",
                        "schema": {
                            "$ref": "#/definitions/Feline"
                        }
                    },
                    "default": {
                        "description": "Unexpected error",
                        "schema": {
                            "$ref": "#/definitions/Error"
                        }
                    }
                }
            },
            "put": {
                "operationId": "putFeline",
                "description": "Put a feline who hisses and doesn't meow",
                "parameters": [
                    {
                        "name": "feline",
                        "in": "body",
                        "description": "Put a feline who hisses and doesn't meow",
                        "schema": {
                            "$ref": "#/definitions/Feline"
                        },
                        "required": true
                    }
                ],
                "responses": {
				    "200": {
                        "description": "Received correct format",
                        "schema": {
                            "type": "string"
                        }
				    }
				}
            }
        },
        "/multipleInheritance/cat": {
            "get": {
                "operationId": "getCat",
                "description": "Get a cat with name 'Whiskers' where likesMilk, meows, and hisses is true",
                "responses": {
                        "200": {
                            "description": "Cat with name 'Whiskers' where likesMilk, meows, and hisses is true",
                        "schema": {
                            "$ref": "#/definitions/Cat"
                        }
                    },
                    "default": {
                        "description": "Unexpected error",
                        "schema": {
                            "$ref": "#/definitions/Error"
                        }
                    }
                }
            },
            "put": {
                "operationId": "putCat",
                "description": "Put a cat with name 'Boots' where likesMilk and hisses is false, meows is true",
                "parameters": [
                    {
                        "name": "cat",
                        "in": "body",
                        "description": "Put a cat with name 'Boots' where likesMilk and hisses is false, meows is true",
                        "schema": {
                            "$ref": "#/definitions/Cat"
                        },
                        "required": true
                    }
                ],
                "responses": {
				    "200": {
                        "description": "Received correct format",
                        "schema": {
                            "type": "string"
                        }
				    }
				}
            }
        },
        "/multipleInheritance/kitten": {
            "get": {
                "operationId": "getKitten",
                "description": "Get a kitten with name 'Gatito' where likesMilk and meows is true, and hisses and eatsMiceYet is false",
                "responses": {
                        "200": {
                            "description": "Kitten with name 'Gatito' where likesMilk and meows is true, and hisses and eatsMiceYet is false",
                        "schema": {
                            "$ref": "#/definitions/Kitten"
                        }
                    },
                    "default": {
                        "description": "Unexpected error",
                        "schema": {
                            "$ref": "#/definitions/Error"
                        }
                    }
                }
            },
            "put": {
                "operationId": "putKitten",
                "description": "Put a kitten with name 'Kitty' where likesMilk and hisses is false, meows and eatsMiceYet is true",
                "parameters": [
                    {
                        "name": "kitten",
                        "in": "body",
                        "description": "Put a kitten with name 'Kitty' where likesMilk and hisses is false, meows and eatsMiceYet is true",
                        "schema": {
                            "$ref": "#/definitions/Kitten"
                        },
                        "required": true
                    }
                ],
                "responses": {
				    "200": {
                        "description": "Received correct format",
                        "schema": {
                            "type": "string"
                        }
				    }
				}
            }
        }
    },
    "definitions": {
        "Error": {
            "type":  "object",
            "properties": {
                "status": {
                    "type": "integer",
                    "format": "int32"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "Pet": {
            "type": "object",
            "required": [ "name" ],
            "properties": {
                "name": {
                    "type": "string"
                }
            }
        },
        "Feline": {
            "type": "object",
            "properties": {
                "meows": {
                    "type": "boolean"
                },
                "hisses": {
                    "type": "boolean"
                }
            }
        },
        "Cat": {
            "allOf": [
                {
                  "$ref": "#/definitions/Pet"
                },
                {
                    "$ref": "#/definitions/Feline"
                }
            ],
			"type": "object",
			"properties": {
				"likesMilk": {
                    "type": "boolean"
                }
			}
        },
        "Kitten": {
            "allOf": [
                {
                  "$ref": "#/definitions/Cat"
                }
            ],
            "type": "object",
            "properties": {
                "eatsMiceYet": {
                    "type": "boolean"
                }
            }
        },
        "Horse": {
            "allOf": [
                {
                  "$ref": "#/definitions/Pet"
                }
            ],
            "type": "object",
            "properties": {
                "isAShowHorse": {
                    "type": "boolean"
                }
            }
        }
    }
}