{
  "CustomTypes": [
    {
      "Name": "CarInfo",
      "ImplementationType": "Structure",
      "Description": "Car information model",
      "Fields": [
        {
          "Type": "Number",
          "Constant": false,
          "IsArray": false,
          "Name": "Model",
          "Description": "model of the car",
          "DefaultValue": "2014"
        },
        {
          "Type": "String",
          "Constant": false,
          "IsArray": false,
          "Name": "Make",
          "Description": "make brand of the car"
        },
        {
          "Type": "String",
          "Constant": false,
          "IsArray": false,
          "Name": "RegNo",
          "Description": "registration number of the car"
        }
      ]
    },
    {
      "Name": "CarTypes",
      "ImplementationType": "Enumeration",
      "Description": "Types of all cars",
      "Fields": [
        {
          "Type": "Number",
          "Constant": false,
          "IsArray": false,
          "Name": "Sedan"
        },
        {
          "Type": "Number",
          "Constant": false,
          "IsArray": false,
          "Name": "Hatchback"
        },
        {
          "Type": "Number",
          "Constant": false,
          "IsArray": false,
          "Name": "Beetle"
        }
      ]
    }
  ],
  "Endpoints": [
    {
      "Name": "GetCarInfo",
      "HTTPMethod": "GET",
      "Group": "Group1",
      "RequiresAuthentication": false,
      "Route": "/carinfo",
      "Response": {
        "Type": "CarInfo",
        "Constant": false,
        "IsArray": false,
        "Name": "response"
      },
      "HasOptionalQueryParams": true,
      "HasOptionalFieldParams": false,
      "Parameters": [
        {
          "Optional": false,
          "ParamFormat": "Query",
          "Type": "String",
          "Constant": false,
          "IsArray": false,
          "Name": "RegNo"
        },
        {
          "Optional": true,
          "ParamFormat": "Query",
          "Type": "String",
          "Constant": false,
          "IsArray": false,
          "Name": "Color"
        },
        {
          "Optional": true,
          "ParamFormat": "Query",
          "Type": "CarTypes",
          "Constant": false,
          "IsArray": false,
          "Name": "CartType"
        }
      ]
    },
    {
      "Name": "UpdateCarInfo",
      "HTTPMethod": "POST",
      "Group": "Group1",
      "RequiresAuthentication": false,
      "Route": "/carinfo",
      "Response": {
        "Type": "Boolean",
        "Constant": false,
        "IsArray": false,
        "Name": "response"
      },
      "HasOptionalQueryParams": false,
      "HasOptionalFieldParams": true,
      "Parameters": [
        {
          "Optional": false,
          "ParamFormat": "Form",
          "Type": "String",
          "Constant": false,
          "IsArray": false,
          "Name": "NewOwner",
          "Description": "The new owner of this car"
        },
        {
          "Optional": false,
          "ParamFormat": "Form",
          "Type": "Number",
          "Constant": false,
          "IsArray": false,
          "Name": "Odometer",
          "Description": "Current kilometers reading from odometer"
        }
      ]
    }
  ],
  "ImageUri": "http://www.clker.com/cliparts/6/f/d/8/1194985166350909057road_runner_ganson.svg.med.png",
  "Name": "Car Information API",
  "BaseUri": "http://carinfo.acme.com/",
  "Authentication": {
    "Type": "Basic",
    "AuthType": "Basic"
  },
  "ModelSerializationScheme": "Json"
}