{
  "swagger": "2.0",
  "info": {
    "title": "Star Wars API (xample.in)",
    "description": "The SWAPI data (people, planets, films, species, vehicles, starships) with the same paths and answers as swapi.dev, so you can change only the host.\n\n**Nothing is saved.** POST, PUT, PATCH and DELETE are an xample.in addition: they are checked and answered as if saved, but the next request sees the original data. Send `X-Sandbox: <any-name>` (or `?sandbox=<any-name>`) to keep your changes in memory for one hour.\n\nData: SWAPI by Paul Hallett, BSD 3-Clause licence.",
    "license": {
      "name": "BSD-3-Clause",
      "url": "https://github.com/phalt/swapi/blob/master/LICENCE"
    },
    "version": "1.0.0"
  },
  "host": "openapi.xample.in",
  "basePath": "/api",
  "schemes": [
    "https"
  ],
  "tags": [
    {
      "name": "root"
    },
    {
      "name": "people",
      "description": "A person within the Star Wars universe."
    },
    {
      "name": "planets",
      "description": "A large mass, planet or planetoid in the Star Wars universe, at the time of 0 ABY."
    },
    {
      "name": "films",
      "description": "A single film."
    },
    {
      "name": "species",
      "description": "A type of person or character within the Star Wars universe."
    },
    {
      "name": "vehicles",
      "description": "A single transport craft that does not have hyperdrive capability."
    },
    {
      "name": "starships",
      "description": "A single transport craft that has hyperdrive capability."
    }
  ],
  "paths": {
    "/": {
      "get": {
        "tags": [
          "root"
        ],
        "summary": "Links to every resource",
        "operationId": "getRoot",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Links",
            "schema": {
              "$ref": "#/definitions/Root"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/people/": {
      "get": {
        "tags": [
          "people"
        ],
        "summary": "List people",
        "description": "10 per page. `search` matches name (case-insensitive, part of the text).",
        "operationId": "listPeople",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "type": "integer",
            "default": 1,
            "minimum": 1
          },
          {
            "name": "search",
            "in": "query",
            "description": "Text to find in name",
            "type": "string"
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "A page of people",
            "schema": {
              "$ref": "#/definitions/PersonList"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "tags": [
          "people"
        ],
        "summary": "Create a person (not kept without X-Sandbox)",
        "operationId": "createPerson",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Person"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Person"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/people/{id}/": {
      "get": {
        "tags": [
          "people"
        ],
        "summary": "Get one person",
        "operationId": "getPerson",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the person",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "Person",
            "schema": {
              "$ref": "#/definitions/Person"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "tags": [
          "people"
        ],
        "summary": "Replace a person (not kept without X-Sandbox)",
        "operationId": "replacePerson",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the person",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Person"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Replaced",
            "schema": {
              "$ref": "#/definitions/Person"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "patch": {
        "tags": [
          "people"
        ],
        "summary": "Change some fields of a person (not kept without X-Sandbox)",
        "operationId": "updatePerson",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the person",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Changed",
            "schema": {
              "$ref": "#/definitions/Person"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "tags": [
          "people"
        ],
        "summary": "Delete a person (not kept without X-Sandbox)",
        "operationId": "deletePerson",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the person",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/people/schema": {
      "get": {
        "tags": [
          "people"
        ],
        "summary": "JSON Schema of a person",
        "operationId": "schemaPerson",
        "parameters": [],
        "responses": {
          "200": {
            "description": "JSON Schema",
            "schema": {
              "type": "object"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/planets/": {
      "get": {
        "tags": [
          "planets"
        ],
        "summary": "List planets",
        "description": "10 per page. `search` matches name (case-insensitive, part of the text).",
        "operationId": "listPlanets",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "type": "integer",
            "default": 1,
            "minimum": 1
          },
          {
            "name": "search",
            "in": "query",
            "description": "Text to find in name",
            "type": "string"
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "A page of planets",
            "schema": {
              "$ref": "#/definitions/PlanetList"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "tags": [
          "planets"
        ],
        "summary": "Create a planet (not kept without X-Sandbox)",
        "operationId": "createPlanet",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Planet"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Planet"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/planets/{id}/": {
      "get": {
        "tags": [
          "planets"
        ],
        "summary": "Get one planet",
        "operationId": "getPlanet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the planet",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "Planet",
            "schema": {
              "$ref": "#/definitions/Planet"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "tags": [
          "planets"
        ],
        "summary": "Replace a planet (not kept without X-Sandbox)",
        "operationId": "replacePlanet",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the planet",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Planet"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Replaced",
            "schema": {
              "$ref": "#/definitions/Planet"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "patch": {
        "tags": [
          "planets"
        ],
        "summary": "Change some fields of a planet (not kept without X-Sandbox)",
        "operationId": "updatePlanet",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the planet",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Changed",
            "schema": {
              "$ref": "#/definitions/Planet"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "tags": [
          "planets"
        ],
        "summary": "Delete a planet (not kept without X-Sandbox)",
        "operationId": "deletePlanet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the planet",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/planets/schema": {
      "get": {
        "tags": [
          "planets"
        ],
        "summary": "JSON Schema of a planet",
        "operationId": "schemaPlanet",
        "parameters": [],
        "responses": {
          "200": {
            "description": "JSON Schema",
            "schema": {
              "type": "object"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/films/": {
      "get": {
        "tags": [
          "films"
        ],
        "summary": "List films",
        "description": "10 per page. `search` matches title (case-insensitive, part of the text).",
        "operationId": "listFilms",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "type": "integer",
            "default": 1,
            "minimum": 1
          },
          {
            "name": "search",
            "in": "query",
            "description": "Text to find in title",
            "type": "string"
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "A page of films",
            "schema": {
              "$ref": "#/definitions/FilmList"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "tags": [
          "films"
        ],
        "summary": "Create a film (not kept without X-Sandbox)",
        "operationId": "createFilm",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Film"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Film"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/films/{id}/": {
      "get": {
        "tags": [
          "films"
        ],
        "summary": "Get one film",
        "operationId": "getFilm",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the film",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "Film",
            "schema": {
              "$ref": "#/definitions/Film"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "tags": [
          "films"
        ],
        "summary": "Replace a film (not kept without X-Sandbox)",
        "operationId": "replaceFilm",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the film",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Film"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Replaced",
            "schema": {
              "$ref": "#/definitions/Film"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "patch": {
        "tags": [
          "films"
        ],
        "summary": "Change some fields of a film (not kept without X-Sandbox)",
        "operationId": "updateFilm",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the film",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Changed",
            "schema": {
              "$ref": "#/definitions/Film"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "tags": [
          "films"
        ],
        "summary": "Delete a film (not kept without X-Sandbox)",
        "operationId": "deleteFilm",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the film",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/films/schema": {
      "get": {
        "tags": [
          "films"
        ],
        "summary": "JSON Schema of a film",
        "operationId": "schemaFilm",
        "parameters": [],
        "responses": {
          "200": {
            "description": "JSON Schema",
            "schema": {
              "type": "object"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/species/": {
      "get": {
        "tags": [
          "species"
        ],
        "summary": "List species",
        "description": "10 per page. `search` matches name (case-insensitive, part of the text).",
        "operationId": "listSpecies",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "type": "integer",
            "default": 1,
            "minimum": 1
          },
          {
            "name": "search",
            "in": "query",
            "description": "Text to find in name",
            "type": "string"
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "A page of species",
            "schema": {
              "$ref": "#/definitions/SpeciesList"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "tags": [
          "species"
        ],
        "summary": "Create a species (not kept without X-Sandbox)",
        "operationId": "createSpecies",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Species"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Species"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/species/{id}/": {
      "get": {
        "tags": [
          "species"
        ],
        "summary": "Get one species",
        "operationId": "getSpecies",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the species",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "Species",
            "schema": {
              "$ref": "#/definitions/Species"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "tags": [
          "species"
        ],
        "summary": "Replace a species (not kept without X-Sandbox)",
        "operationId": "replaceSpecies",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the species",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Species"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Replaced",
            "schema": {
              "$ref": "#/definitions/Species"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "patch": {
        "tags": [
          "species"
        ],
        "summary": "Change some fields of a species (not kept without X-Sandbox)",
        "operationId": "updateSpecies",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the species",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Changed",
            "schema": {
              "$ref": "#/definitions/Species"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "tags": [
          "species"
        ],
        "summary": "Delete a species (not kept without X-Sandbox)",
        "operationId": "deleteSpecies",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the species",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/species/schema": {
      "get": {
        "tags": [
          "species"
        ],
        "summary": "JSON Schema of a species",
        "operationId": "schemaSpecies",
        "parameters": [],
        "responses": {
          "200": {
            "description": "JSON Schema",
            "schema": {
              "type": "object"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/vehicles/": {
      "get": {
        "tags": [
          "vehicles"
        ],
        "summary": "List vehicles",
        "description": "10 per page. `search` matches name, model (case-insensitive, part of the text).",
        "operationId": "listVehicles",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "type": "integer",
            "default": 1,
            "minimum": 1
          },
          {
            "name": "search",
            "in": "query",
            "description": "Text to find in name, model",
            "type": "string"
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "A page of vehicles",
            "schema": {
              "$ref": "#/definitions/VehicleList"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "tags": [
          "vehicles"
        ],
        "summary": "Create a vehicle (not kept without X-Sandbox)",
        "operationId": "createVehicle",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Vehicle"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Vehicle"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/vehicles/{id}/": {
      "get": {
        "tags": [
          "vehicles"
        ],
        "summary": "Get one vehicle",
        "operationId": "getVehicle",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the vehicle",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "Vehicle",
            "schema": {
              "$ref": "#/definitions/Vehicle"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "tags": [
          "vehicles"
        ],
        "summary": "Replace a vehicle (not kept without X-Sandbox)",
        "operationId": "replaceVehicle",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the vehicle",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Vehicle"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Replaced",
            "schema": {
              "$ref": "#/definitions/Vehicle"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "patch": {
        "tags": [
          "vehicles"
        ],
        "summary": "Change some fields of a vehicle (not kept without X-Sandbox)",
        "operationId": "updateVehicle",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the vehicle",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Changed",
            "schema": {
              "$ref": "#/definitions/Vehicle"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "tags": [
          "vehicles"
        ],
        "summary": "Delete a vehicle (not kept without X-Sandbox)",
        "operationId": "deleteVehicle",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the vehicle",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/vehicles/schema": {
      "get": {
        "tags": [
          "vehicles"
        ],
        "summary": "JSON Schema of a vehicle",
        "operationId": "schemaVehicle",
        "parameters": [],
        "responses": {
          "200": {
            "description": "JSON Schema",
            "schema": {
              "type": "object"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/starships/": {
      "get": {
        "tags": [
          "starships"
        ],
        "summary": "List starships",
        "description": "10 per page. `search` matches name, model (case-insensitive, part of the text).",
        "operationId": "listStarships",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "type": "integer",
            "default": 1,
            "minimum": 1
          },
          {
            "name": "search",
            "in": "query",
            "description": "Text to find in name, model",
            "type": "string"
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "A page of starships",
            "schema": {
              "$ref": "#/definitions/StarshipList"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "post": {
        "tags": [
          "starships"
        ],
        "summary": "Create a starship (not kept without X-Sandbox)",
        "operationId": "createStarship",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Starship"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Starship"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/starships/{id}/": {
      "get": {
        "tags": [
          "starships"
        ],
        "summary": "Get one starship",
        "operationId": "getStarship",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the starship",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "200": {
            "description": "Starship",
            "schema": {
              "$ref": "#/definitions/Starship"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "put": {
        "tags": [
          "starships"
        ],
        "summary": "Replace a starship (not kept without X-Sandbox)",
        "operationId": "replaceStarship",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the starship",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Starship"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Replaced",
            "schema": {
              "$ref": "#/definitions/Starship"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "patch": {
        "tags": [
          "starships"
        ],
        "summary": "Change some fields of a starship (not kept without X-Sandbox)",
        "operationId": "updateStarship",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the starship",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Changed",
            "schema": {
              "$ref": "#/definitions/Starship"
            }
          },
          "400": {
            "description": "The body is not valid",
            "schema": {
              "$ref": "#/definitions/BadRequest"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      },
      "delete": {
        "tags": [
          "starships"
        ],
        "summary": "Delete a starship (not kept without X-Sandbox)",
        "operationId": "deleteStarship",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the starship",
            "required": true,
            "type": "integer",
            "minimum": 1
          },
          {
            "name": "X-Sandbox",
            "in": "header",
            "description": "Keep your changes in memory for one hour under this name. Without it, writes are answered but not kept.",
            "required": false,
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,64}$"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    },
    "/starships/schema": {
      "get": {
        "tags": [
          "starships"
        ],
        "summary": "JSON Schema of a starship",
        "operationId": "schemaStarship",
        "parameters": [],
        "responses": {
          "200": {
            "description": "JSON Schema",
            "schema": {
              "type": "object"
            }
          }
        },
        "produces": [
          "application/json"
        ]
      }
    }
  },
  "definitions": {
    "NotFound": {
      "type": "object",
      "properties": {
        "detail": {
          "type": "string",
          "example": "Not found"
        }
      }
    },
    "BadRequest": {
      "type": "object",
      "properties": {
        "detail": {
          "type": "string",
          "example": "name is required."
        }
      }
    },
    "Root": {
      "type": "object",
      "properties": {
        "people": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/people/"
        },
        "planets": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/planets/"
        },
        "films": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/films/"
        },
        "species": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/species/"
        },
        "vehicles": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/vehicles/"
        },
        "starships": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/starships/"
        }
      }
    },
    "Person": {
      "type": "object",
      "description": "A person within the Star Wars universe.",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "Luke Skywalker"
        },
        "height": {
          "type": "string",
          "example": "172"
        },
        "mass": {
          "type": "string",
          "example": "77"
        },
        "hair_color": {
          "type": "string",
          "example": "blond"
        },
        "skin_color": {
          "type": "string",
          "example": "fair"
        },
        "eye_color": {
          "type": "string",
          "example": "blue"
        },
        "birth_year": {
          "type": "string",
          "example": "19BBY"
        },
        "gender": {
          "type": "string",
          "example": "male"
        },
        "homeworld": {
          "type": "string",
          "format": "uri",
          "description": "URL of the planet resource",
          "example": "https://swapi.xample.in/api/planets/1/",
          "x-nullable": true
        },
        "films": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of films resources",
          "example": [
            "https://swapi.xample.in/api/films/1/"
          ]
        },
        "species": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of species resources",
          "example": [
            "https://swapi.xample.in/api/species/1/"
          ]
        },
        "vehicles": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of vehicles resources",
          "example": [
            "https://swapi.xample.in/api/vehicles/1/"
          ]
        },
        "starships": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of starships resources",
          "example": [
            "https://swapi.xample.in/api/starships/1/"
          ]
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-09T13:50:51.644Z"
        },
        "edited": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-20T21:17:56.891Z"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "readOnly": true,
          "example": "https://swapi.xample.in/api/people/1/"
        }
      }
    },
    "PersonList": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "example": 82
        },
        "next": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/people/?page=2",
          "x-nullable": true
        },
        "previous": {
          "type": "string",
          "format": "uri",
          "example": null,
          "x-nullable": true
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Person"
          }
        }
      }
    },
    "Planet": {
      "type": "object",
      "description": "A large mass, planet or planetoid in the Star Wars universe, at the time of 0 ABY.",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "Tatooine"
        },
        "rotation_period": {
          "type": "string",
          "example": "23"
        },
        "orbital_period": {
          "type": "string",
          "example": "304"
        },
        "diameter": {
          "type": "string",
          "example": "10465"
        },
        "climate": {
          "type": "string",
          "example": "arid"
        },
        "gravity": {
          "type": "string",
          "example": "1 standard"
        },
        "terrain": {
          "type": "string",
          "example": "desert"
        },
        "surface_water": {
          "type": "string",
          "example": "1"
        },
        "population": {
          "type": "string",
          "example": "200000"
        },
        "residents": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of people resources",
          "example": [
            "https://swapi.xample.in/api/people/1/"
          ]
        },
        "films": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of films resources",
          "example": [
            "https://swapi.xample.in/api/films/1/"
          ]
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-09T13:50:49.641Z"
        },
        "edited": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-20T20:58:18.411Z"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "readOnly": true,
          "example": "https://swapi.xample.in/api/planets/1/"
        }
      }
    },
    "PlanetList": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "example": 82
        },
        "next": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/planets/?page=2",
          "x-nullable": true
        },
        "previous": {
          "type": "string",
          "format": "uri",
          "example": null,
          "x-nullable": true
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Planet"
          }
        }
      }
    },
    "Film": {
      "type": "object",
      "description": "A single film.",
      "required": [
        "title"
      ],
      "properties": {
        "title": {
          "type": "string",
          "example": "A New Hope"
        },
        "episode_id": {
          "type": "integer",
          "example": 4
        },
        "opening_crawl": {
          "type": "string",
          "example": "It is a period of civil war.\r\nRebel spaceships, striking\r\nfrom a hidden base,..."
        },
        "director": {
          "type": "string",
          "example": "George Lucas"
        },
        "producer": {
          "type": "string",
          "example": "Gary Kurtz, Rick McCallum"
        },
        "release_date": {
          "type": "string",
          "example": "1977-05-25",
          "format": "date"
        },
        "characters": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of people resources",
          "example": [
            "https://swapi.xample.in/api/people/1/"
          ]
        },
        "planets": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of planets resources",
          "example": [
            "https://swapi.xample.in/api/planets/1/"
          ]
        },
        "starships": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of starships resources",
          "example": [
            "https://swapi.xample.in/api/starships/1/"
          ]
        },
        "vehicles": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of vehicles resources",
          "example": [
            "https://swapi.xample.in/api/vehicles/1/"
          ]
        },
        "species": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of species resources",
          "example": [
            "https://swapi.xample.in/api/species/1/"
          ]
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-10T14:23:31.880Z"
        },
        "edited": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-20T19:49:45.256Z"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "readOnly": true,
          "example": "https://swapi.xample.in/api/films/1/"
        }
      }
    },
    "FilmList": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "example": 82
        },
        "next": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/films/?page=2",
          "x-nullable": true
        },
        "previous": {
          "type": "string",
          "format": "uri",
          "example": null,
          "x-nullable": true
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Film"
          }
        }
      }
    },
    "Species": {
      "type": "object",
      "description": "A type of person or character within the Star Wars universe.",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "Human"
        },
        "classification": {
          "type": "string",
          "example": "mammal"
        },
        "designation": {
          "type": "string",
          "example": "sentient"
        },
        "average_height": {
          "type": "string",
          "example": "180"
        },
        "skin_colors": {
          "type": "string",
          "example": "caucasian, black, asian, hispanic"
        },
        "hair_colors": {
          "type": "string",
          "example": "blonde, brown, black, red"
        },
        "eye_colors": {
          "type": "string",
          "example": "brown, blue, green, hazel, grey, amber"
        },
        "average_lifespan": {
          "type": "string",
          "example": "120"
        },
        "homeworld": {
          "type": "string",
          "format": "uri",
          "description": "URL of the planet resource",
          "example": "https://swapi.xample.in/api/planets/1/",
          "x-nullable": true
        },
        "language": {
          "type": "string",
          "example": "Galactic Basic"
        },
        "people": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of people resources",
          "example": [
            "https://swapi.xample.in/api/people/1/"
          ]
        },
        "films": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of films resources",
          "example": [
            "https://swapi.xample.in/api/films/1/"
          ]
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-10T13:52:11.567Z"
        },
        "edited": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-20T21:36:42.136Z"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "readOnly": true,
          "example": "https://swapi.xample.in/api/species/1/"
        }
      }
    },
    "SpeciesList": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "example": 82
        },
        "next": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/species/?page=2",
          "x-nullable": true
        },
        "previous": {
          "type": "string",
          "format": "uri",
          "example": null,
          "x-nullable": true
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Species"
          }
        }
      }
    },
    "Vehicle": {
      "type": "object",
      "description": "A single transport craft that does not have hyperdrive capability.",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "Sand Crawler"
        },
        "model": {
          "type": "string",
          "example": "Digger Crawler"
        },
        "manufacturer": {
          "type": "string",
          "example": "Corellia Mining Corporation"
        },
        "cost_in_credits": {
          "type": "string",
          "example": "150000"
        },
        "length": {
          "type": "string",
          "example": "36.8 "
        },
        "max_atmosphering_speed": {
          "type": "string",
          "example": "30"
        },
        "crew": {
          "type": "string",
          "example": "46"
        },
        "passengers": {
          "type": "string",
          "example": "30"
        },
        "cargo_capacity": {
          "type": "string",
          "example": "50000"
        },
        "consumables": {
          "type": "string",
          "example": "2 months"
        },
        "vehicle_class": {
          "type": "string",
          "example": "wheeled"
        },
        "pilots": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of people resources",
          "example": [
            "https://swapi.xample.in/api/people/1/"
          ]
        },
        "films": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of films resources",
          "example": [
            "https://swapi.xample.in/api/films/1/"
          ]
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-10T15:36:25.724Z"
        },
        "edited": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-20T21:30:21.661Z"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "readOnly": true,
          "example": "https://swapi.xample.in/api/vehicles/1/"
        }
      }
    },
    "VehicleList": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "example": 82
        },
        "next": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/vehicles/?page=2",
          "x-nullable": true
        },
        "previous": {
          "type": "string",
          "format": "uri",
          "example": null,
          "x-nullable": true
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Vehicle"
          }
        }
      }
    },
    "Starship": {
      "type": "object",
      "description": "A single transport craft that has hyperdrive capability.",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "CR90 corvette"
        },
        "model": {
          "type": "string",
          "example": "CR90 corvette"
        },
        "manufacturer": {
          "type": "string",
          "example": "Corellian Engineering Corporation"
        },
        "cost_in_credits": {
          "type": "string",
          "example": "3500000"
        },
        "length": {
          "type": "string",
          "example": "150"
        },
        "max_atmosphering_speed": {
          "type": "string",
          "example": "950"
        },
        "crew": {
          "type": "string",
          "example": "30-165"
        },
        "passengers": {
          "type": "string",
          "example": "600"
        },
        "cargo_capacity": {
          "type": "string",
          "example": "3000000"
        },
        "consumables": {
          "type": "string",
          "example": "1 year"
        },
        "hyperdrive_rating": {
          "type": "string",
          "example": "2.0"
        },
        "MGLT": {
          "type": "string",
          "example": "60"
        },
        "starship_class": {
          "type": "string",
          "example": "corvette"
        },
        "pilots": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of people resources",
          "example": [
            "https://swapi.xample.in/api/people/1/"
          ]
        },
        "films": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "description": "URLs of films resources",
          "example": [
            "https://swapi.xample.in/api/films/1/"
          ]
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-10T14:20:33.369Z"
        },
        "edited": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "example": "2014-12-20T21:23:49.867Z"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "readOnly": true,
          "example": "https://swapi.xample.in/api/starships/1/"
        }
      }
    },
    "StarshipList": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "example": 82
        },
        "next": {
          "type": "string",
          "format": "uri",
          "example": "https://swapi.xample.in/api/starships/?page=2",
          "x-nullable": true
        },
        "previous": {
          "type": "string",
          "format": "uri",
          "example": null,
          "x-nullable": true
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Starship"
          }
        }
      }
    }
  },
  "externalDocs": {
    "description": "All sample APIs and spec formats",
    "url": "https://openapi.xample.in/"
  }
}