{
   "definitions" : {
      "_Error" : {
         "x-ignore": 1,
         "properties" : {
            "errors" : {
               "items" : {
                  "properties" : {
                     "message" : {
                        "description" : "Human readable description of the error",
                        "type" : "string"
                     },
                     "path" : {
                        "description" : "JSON pointer to the input data where the error occur",
                        "type" : "string"
                     }
                  },
                  "required" : [
                     "message"
                  ]
               },
               "type" : "array"
            }
         },
         "title" : "OpenAPI Error Object",
         "type" : "object"
      },
      "blog" : {
         "properties" : {
            "html" : {
               "type" : [
                  "string",
                  "null"
               ],
               "x-order" : 6
            },
            "id" : {
               "readOnly" : true,
               "type" : "integer",
               "x-order" : 1
            },
            "is_published" : {
               "default" : 0,
               "type" : "boolean",
               "x-order" : 7
            },
            "markdown" : {
               "type" : "string",
               "x-order" : 5
            },
            "published_date" : {
               "default" : "now",
               "format" : "date-time",
               "type" : [
                  "string",
                  "null"
               ],
               "x-order" : 8
            },
            "slug" : {
               "type" : [
                  "string",
                  "null"
               ],
               "x-order" : 4
            },
            "title" : {
               "type" : "string",
               "x-order" : 3
            },
            "username" : {
               "type" : [
                  "string",
                  "null"
               ],
               "x-foreign-key" : "user",
               "x-order" : 2
            }
         },
         "required" : [
            "title",
            "markdown"
         ],
         "type" : "object"
      },
      "people" : {
         "properties" : {
            "age" : {
               "type" : [
                  "integer",
                  "null"
               ],
               "x-order" : 4
            },
            "contact" : {
               "default" : 0,
               "type" : [
                  "boolean",
                  "null"
               ],
               "x-order" : 5
            },
            "email" : {
               "type" : [
                  "string",
                  "null"
               ],
               "x-order" : 3
            },
            "id" : {
               "readOnly" : true,
               "type" : "integer",
               "x-order" : 1
            },
            "name" : {
               "type" : "string",
               "x-order" : 2
            },
            "phone" : {
               "type" : [
                  "string",
                  "null"
               ],
               "x-order" : 6
            }
         },
         "required" : [
            "name"
         ],
         "type" : "object"
      },
      "user" : {
         "properties" : {
            "access" : {
               "default" : "user",
               "enum" : [
                  "user",
                  "moderator",
                  "admin"
               ],
               "type" : "string",
               "x-order" : 5
            },
            "age" : {
               "description" : "The person's age",
               "type" : [
                  "integer",
                  "null"
               ],
               "x-order" : 6
            },
            "avatar" : {
               "default" : "",
               "format" : "filepath",
               "type" : "string",
               "x-order" : 8
            },
            "created" : {
               "default" : "now",
               "format" : "date-time",
               "type" : "string",
               "x-order" : 9
            },
            "email" : {
               "format" : "email",
               "pattern" : "^[^@]+@[^@]+$",
               "title" : "E-mail Address",
               "type" : "string",
               "x-order" : 3
            },
            "id" : {
               "readOnly" : true,
               "type" : "integer",
               "x-order" : 1
            },
            "password" : {
               "format" : "password",
               "type" : "string",
               "x-order" : 4
            },
            "plugin" : {
               "default" : "password",
               "type" : "string",
               "x-order" : 7
            },
            "username" : {
               "type" : "string",
               "x-order" : 2
            }
         },
         "required" : [
            "username",
            "email",
            "password"
         ],
         "type" : "object",
         "x-id-field" : "username",
         "x-list-columns" : [
            "username",
            "email"
         ]
      },
      "usermini" : {
         "properties" : {
            "email" : {
               "format" : "email",
               "pattern" : "^[^@]+@[^@]+$",
               "title" : "E-mail Address",
               "type" : "string",
               "x-order" : 3
            },
            "id" : {
               "readOnly" : true,
               "type" : "integer",
               "x-order" : 1
            },
            "username" : {
               "type" : "string",
               "x-order" : 2
            }
         },
         "type" : "object",
         "x-id-field" : "username",
         "x-list-columns" : [
            "username",
            "email"
         ],
         "x-view" : {
            "schema" : "user"
         }
      },
      "userviewnoprops" : {
         "type" : "object",
         "x-id-field" : "username",
         "x-list-columns" : [
            "username",
            "email"
         ],
         "x-view" : {
            "schema" : "user"
         }
      }
   },
   "info" : {
      "title" : "Yancy",
      "version" : "1"
   },
   "parameters" : {
      "$limit" : {
         "description" : "The number of items to return",
         "in" : "query",
         "name" : "$limit",
         "type" : "integer"
      },
      "$offset" : {
         "description" : "The index (0-based) to start returning items",
         "in" : "query",
         "name" : "$offset",
         "type" : "integer"
      },
      "$order_by" : {
         "description" : "How to sort the list. A string containing one of \"asc\" (to sort in ascending order) or \"desc\" (to sort in descending order), followed by a \":\", followed by the field name to sort by.",
         "in" : "query",
         "name" : "$order_by",
         "pattern" : "^(?:asc|desc):[^:,]+$",
         "type" : "string"
      }
   },
   "paths" : {
      "/blog" : {
         "get" : {
            "parameters" : [
               {
                  "$ref" : "#/parameters/%24limit"
               },
               {
                  "$ref" : "#/parameters/%24offset"
               },
               {
                  "$ref" : "#/parameters/%24order_by"
               },
               {
                  "description" : "Filter the list by the html field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "html",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the id field. Looks for records where the integer is equal to the value.",
                  "in" : "query",
                  "name" : "id",
                  "type" : "integer"
               },
               {
                  "description" : "Filter the list by the is_published field. Looks for records where the boolean is true/false.",
                  "in" : "query",
                  "name" : "is_published",
                  "type" : "boolean"
               },
               {
                  "description" : "Filter the list by the markdown field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "markdown",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the published_date field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "published_date",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the slug field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "slug",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the title field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "title",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the username field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "username",
                  "type" : "string"
               }
            ],
            "responses" : {
               "200" : {
                  "description" : "List of items",
                  "schema" : {
                     "properties" : {
                        "items" : {
                           "description" : "This page of items",
                           "items" : {
                              "$ref" : "#/definitions/blog"
                           },
                           "type" : "array"
                        },
                        "total" : {
                           "description" : "The total number of items available",
                           "type" : "integer"
                        }
                     },
                     "required" : [
                        "items",
                        "total"
                     ],
                     "type" : "object"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "post" : {
            "parameters" : [
               {
                  "in" : "body",
                  "name" : "newItem",
                  "required" : true,
                  "schema" : {
                     "$ref" : "#/definitions/blog"
                  }
               }
            ],
            "responses" : {
               "201" : {
                  "description" : "Entry was created",
                  "schema" : {
                     "$ref" : "#/definitions/blog/properties/id"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         }
      },
      "/blog/{id}" : {
         "delete" : {
            "description" : "Delete a single item",
            "responses" : {
               "204" : {
                  "description" : "Item was deleted"
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "get" : {
            "description" : "Fetch a single item",
            "responses" : {
               "200" : {
                  "description" : "Item details",
                  "schema" : {
                     "$ref" : "#/definitions/blog"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "parameters" : [
            {
               "description" : "The id of the item",
               "in" : "path",
               "name" : "id",
               "required" : true,
               "type" : "string",
               "x-mojo-placeholder" : "*"
            }
         ],
         "put" : {
            "description" : "Update a single item",
            "parameters" : [
               {
                  "in" : "body",
                  "name" : "newItem",
                  "required" : true,
                  "schema" : {
                     "$ref" : "#/definitions/blog"
                  }
               }
            ],
            "responses" : {
               "200" : {
                  "description" : "Item was updated",
                  "schema" : {
                     "$ref" : "#/definitions/blog"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         }
      },
      "/people" : {
         "get" : {
            "parameters" : [
               {
                  "$ref" : "#/parameters/%24limit"
               },
               {
                  "$ref" : "#/parameters/%24offset"
               },
               {
                  "$ref" : "#/parameters/%24order_by"
               },
               {
                  "description" : "Filter the list by the age field. Looks for records where the integer is equal to the value.",
                  "in" : "query",
                  "name" : "age",
                  "type" : "integer"
               },
               {
                  "description" : "Filter the list by the contact field. Looks for records where the boolean is true/false.",
                  "in" : "query",
                  "name" : "contact",
                  "type" : "boolean"
               },
               {
                  "description" : "Filter the list by the email field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "email",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the id field. Looks for records where the integer is equal to the value.",
                  "in" : "query",
                  "name" : "id",
                  "type" : "integer"
               },
               {
                  "description" : "Filter the list by the name field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "name",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the phone field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "phone",
                  "type" : "string"
               }
            ],
            "responses" : {
               "200" : {
                  "description" : "List of items",
                  "schema" : {
                     "properties" : {
                        "items" : {
                           "description" : "This page of items",
                           "items" : {
                              "$ref" : "#/definitions/people"
                           },
                           "type" : "array"
                        },
                        "total" : {
                           "description" : "The total number of items available",
                           "type" : "integer"
                        }
                     },
                     "required" : [
                        "items",
                        "total"
                     ],
                     "type" : "object"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "post" : {
            "parameters" : [
               {
                  "in" : "body",
                  "name" : "newItem",
                  "required" : true,
                  "schema" : {
                     "$ref" : "#/definitions/people"
                  }
               }
            ],
            "responses" : {
               "201" : {
                  "description" : "Entry was created",
                  "schema" : {
                     "$ref" : "#/definitions/people/properties/id"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         }
      },
      "/people/{id}" : {
         "delete" : {
            "description" : "Delete a single item",
            "responses" : {
               "204" : {
                  "description" : "Item was deleted"
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "get" : {
            "description" : "Fetch a single item",
            "responses" : {
               "200" : {
                  "description" : "Item details",
                  "schema" : {
                     "$ref" : "#/definitions/people"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "parameters" : [
            {
               "description" : "The id of the item",
               "in" : "path",
               "name" : "id",
               "required" : true,
               "type" : "string",
               "x-mojo-placeholder" : "*"
            }
         ],
         "put" : {
            "description" : "Update a single item",
            "parameters" : [
               {
                  "in" : "body",
                  "name" : "newItem",
                  "required" : true,
                  "schema" : {
                     "$ref" : "#/definitions/people"
                  }
               }
            ],
            "responses" : {
               "200" : {
                  "description" : "Item was updated",
                  "schema" : {
                     "$ref" : "#/definitions/people"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         }
      },
      "/user" : {
         "get" : {
            "parameters" : [
               {
                  "$ref" : "#/parameters/%24limit"
               },
               {
                  "$ref" : "#/parameters/%24offset"
               },
               {
                  "$ref" : "#/parameters/%24order_by"
               },
               {
                  "description" : "Filter the list by the access field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "access",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the age field. Looks for records where the integer is equal to the value.",
                  "in" : "query",
                  "name" : "age",
                  "type" : "integer"
               },
               {
                  "description" : "Filter the list by the avatar field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "avatar",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the created field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "created",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the email field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "email",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the id field. Looks for records where the integer is equal to the value.",
                  "in" : "query",
                  "name" : "id",
                  "type" : "integer"
               },
               {
                  "description" : "Filter the list by the password field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "password",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the plugin field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "plugin",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the username field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "username",
                  "type" : "string"
               }
            ],
            "responses" : {
               "200" : {
                  "description" : "List of items",
                  "schema" : {
                     "properties" : {
                        "items" : {
                           "description" : "This page of items",
                           "items" : {
                              "$ref" : "#/definitions/user"
                           },
                           "type" : "array"
                        },
                        "total" : {
                           "description" : "The total number of items available",
                           "type" : "integer"
                        }
                     },
                     "required" : [
                        "items",
                        "total"
                     ],
                     "type" : "object"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "post" : {
            "parameters" : [
               {
                  "in" : "body",
                  "name" : "newItem",
                  "required" : true,
                  "schema" : {
                     "$ref" : "#/definitions/user"
                  }
               }
            ],
            "responses" : {
               "201" : {
                  "description" : "Entry was created",
                  "schema" : {
                     "$ref" : "#/definitions/user/properties/username"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         }
      },
      "/user/{username}" : {
         "delete" : {
            "description" : "Delete a single item",
            "responses" : {
               "204" : {
                  "description" : "Item was deleted"
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "get" : {
            "description" : "Fetch a single item",
            "responses" : {
               "200" : {
                  "description" : "Item details",
                  "schema" : {
                     "$ref" : "#/definitions/user"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "parameters" : [
            {
               "description" : "The id of the item",
               "in" : "path",
               "name" : "username",
               "required" : true,
               "type" : "string",
               "x-mojo-placeholder" : "*"
            }
         ],
         "put" : {
            "description" : "Update a single item",
            "parameters" : [
               {
                  "in" : "body",
                  "name" : "newItem",
                  "required" : true,
                  "schema" : {
                     "$ref" : "#/definitions/user"
                  }
               }
            ],
            "responses" : {
               "200" : {
                  "description" : "Item was updated",
                  "schema" : {
                     "$ref" : "#/definitions/user"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         }
      },
      "/usermini" : {
         "get" : {
            "parameters" : [
               {
                  "$ref" : "#/parameters/%24limit"
               },
               {
                  "$ref" : "#/parameters/%24offset"
               },
               {
                  "$ref" : "#/parameters/%24order_by"
               },
               {
                  "description" : "Filter the list by the email field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "email",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the id field. Looks for records where the integer is equal to the value.",
                  "in" : "query",
                  "name" : "id",
                  "type" : "integer"
               },
               {
                  "description" : "Filter the list by the username field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "username",
                  "type" : "string"
               }
            ],
            "responses" : {
               "200" : {
                  "description" : "List of items",
                  "schema" : {
                     "properties" : {
                        "items" : {
                           "description" : "This page of items",
                           "items" : {
                              "$ref" : "#/definitions/usermini"
                           },
                           "type" : "array"
                        },
                        "total" : {
                           "description" : "The total number of items available",
                           "type" : "integer"
                        }
                     },
                     "required" : [
                        "items",
                        "total"
                     ],
                     "type" : "object"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         }
      },
      "/usermini/{username}" : {
         "get" : {
            "description" : "Fetch a single item",
            "responses" : {
               "200" : {
                  "description" : "Item details",
                  "schema" : {
                     "$ref" : "#/definitions/usermini"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "parameters" : [
            {
               "description" : "The id of the item",
               "in" : "path",
               "name" : "username",
               "required" : true,
               "type" : "string",
               "x-mojo-placeholder" : "*"
            }
         ]
      },
      "/userviewnoprops" : {
         "get" : {
            "parameters" : [
               {
                  "$ref" : "#/parameters/%24limit"
               },
               {
                  "$ref" : "#/parameters/%24offset"
               },
               {
                  "$ref" : "#/parameters/%24order_by"
               },
               {
                  "description" : "Filter the list by the access field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "access",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the age field. Looks for records where the integer is equal to the value.",
                  "in" : "query",
                  "name" : "age",
                  "type" : "integer"
               },
               {
                  "description" : "Filter the list by the avatar field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "avatar",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the created field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "created",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the email field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "email",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the id field. Looks for records where the integer is equal to the value.",
                  "in" : "query",
                  "name" : "id",
                  "type" : "integer"
               },
               {
                  "description" : "Filter the list by the password field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "password",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the plugin field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "plugin",
                  "type" : "string"
               },
               {
                  "description" : "Filter the list by the username field. By default, looks for records containing the value anywhere in the column. Use '*' anywhere in the value to anchor the match.",
                  "in" : "query",
                  "name" : "username",
                  "type" : "string"
               }
            ],
            "responses" : {
               "200" : {
                  "description" : "List of items",
                  "schema" : {
                     "properties" : {
                        "items" : {
                           "description" : "This page of items",
                           "items" : {
                              "$ref" : "#/definitions/userviewnoprops"
                           },
                           "type" : "array"
                        },
                        "total" : {
                           "description" : "The total number of items available",
                           "type" : "integer"
                        }
                     },
                     "required" : [
                        "items",
                        "total"
                     ],
                     "type" : "object"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         }
      },
      "/userviewnoprops/{username}" : {
         "get" : {
            "description" : "Fetch a single item",
            "responses" : {
               "200" : {
                  "description" : "Item details",
                  "schema" : {
                     "$ref" : "#/definitions/userviewnoprops"
                  }
               },
               "default" : {
                  "description" : "Unexpected error",
                  "schema" : {
                     "$ref" : "#/definitions/_Error"
                  }
               }
            }
         },
         "parameters" : [
            {
               "description" : "The id of the item",
               "in" : "path",
               "name" : "username",
               "required" : true,
               "type" : "string",
               "x-mojo-placeholder" : "*"
            }
         ]
      }
   },
   "swagger" : "2.0"
}