UNPKG

boats

Version:

Beautiful Open / Async Template System - Write less yaml with BOATS and Nunjucks.

663 lines (662 loc) 22 kB
{ "swagger": "2.0", "info": { "version": "1.0.1", "title": "boats", "description": "A sample API", "contact": { "name": "Swagger API Team", "email": "john@boats.io", "url": "https://github.com/johndcarmichael/boats/" }, "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" } }, "schemes": [ "https" ], "host": "api.example.com", "basePath": "/v1", "securityDefinitions": { "jwtToken": { "type": "apiKey", "in": "header", "name": "authorization" }, "apiKey": { "type": "apiKey", "in": "header", "name": "x-api-key" } }, "paths": { "/v1/star-wars/": { "get": { "tags": [ "starWars" ], "summary": "get star wars details", "description": "get star wars details", "operationId": "v1StarWarsGet", "responses": { "200": { "description": "Successful fetch", "schema": { "$ref": "#/definitions/StarWars" } }, "404": { "description": "Path & method combination not found" } }, "security": [ { "jwtToken": [] }, { "apiKey": [] } ], "parameters": [ { "$ref": "#/parameters/HeaderSearchId" } ], "x-autoTag": "V1", "x-fileName": "get", "x-uniqueOpId": "v1StarWarsGet", "x-template-permission": "readV1StarWarsGet", "x-template-description": "v1StarWarsGet", "x-template-resolution": { "a": { "$ref": "#/parameters/HeaderSearchId" }, "b": { "$ref": "#/parameters/HeaderSearchId" }, "c": { "$ref": "#/parameters/HeaderSearchId" } }, "x-json-content-test": "v1StarWarsGet" } }, "/weather": { "get": { "tags": [ "weather" ], "summary": "weather search", "description": "Search for weather objects", "operationId": "v1WeatherGet", "x-filename": "get", "parameters": [ { "$ref": "#/parameters/QueryOffset" }, { "$ref": "#/parameters/QueryTextSearch" }, { "$ref": "#/parameters/HeaderSearchId" } ], "responses": { "200": { "description": "Successful fetch", "schema": { "type": "object", "properties": { "meta": { "$ref": "#/definitions/GenericSearchMeta" }, "data": { "type": "array", "items": { "$ref": "#/definitions/WeatherModel" } } } } }, "404": { "description": "Path & method combination not found" } }, "security": [ { "jwtToken": [] }, { "apiKey": [] } ], "x-autoTag": "V1", "x-fileName": "get", "x-uniqueOpId": "v1WeatherGet", "x-template-permission": "readV1WeatherGet", "x-template-description": "v1WeatherGet", "x-template-resolution": { "a": { "$ref": "#/parameters/HeaderSearchId" }, "b": { "$ref": "#/parameters/HeaderSearchId" }, "c": { "$ref": "#/parameters/HeaderSearchId" } }, "x-json-content-test": "v1WeatherGet" }, "post": { "tags": [ "weather" ], "summary": "weather data", "description": "Create a new weather record.", "operationId": "v1WeatherPost", "parameters": [ { "in": "body", "name": "v1WeatherPost", "description": "Optional description in *Markdown*", "required": true, "schema": { "$ref": "#/definitions/WeatherPost" } } ], "responses": { "200": { "description": "Successful temp creation", "schema": { "$ref": "#/definitions/WeatherModel" } }, "422": { "description": "Invalid form data provided" } }, "x-permission": "createV1Weather", "security": [ { "jwtToken": [] } ], "x-autoTag": "V1", "x-fileName": "post", "x-uniqueOpId": "v1WeatherPost", "x-template-permission": "createV1WeatherPost", "x-template-description": "v1WeatherPost", "x-template-resolution": { "a": { "$ref": "#/parameters/HeaderSearchId" }, "b": { "$ref": "#/parameters/HeaderSearchId" }, "c": { "$ref": "#/parameters/HeaderSearchId" } }, "x-json-content-test": "v1WeatherPost" } }, "/weather/id/{id}": { "get": { "tags": [ "weather" ], "summary": "One weather object", "description": "Get the full weather object", "operationId": "v1WeatherIdGet", "produces": [ "application/json" ], "parameters": [ { "$ref": "#/parameters/PathId" }, { "$ref": "#/parameters/HeaderSearchId" } ], "responses": { "200": { "description": "Successful fetch", "schema": { "$ref": "#/definitions/WeatherModel" } }, "404": { "description": "Path & method combination not found" } }, "security": [ { "jwtToken": [] }, { "apiKey": [] } ], "x-permission": "readV1WeatherId", "x-autoTag": "V1", "x-fileName": "get", "x-uniqueOpId": "v1WeatherIdGet", "x-template-permission": "readV1WeatherIdGet", "x-template-description": "v1WeatherIdGet", "x-template-resolution": { "a": { "$ref": "#/parameters/HeaderSearchId" }, "b": { "$ref": "#/parameters/HeaderSearchId" }, "c": { "$ref": "#/parameters/HeaderSearchId" } }, "x-json-content-test": "v1WeatherIdGet" }, "delete": { "tags": [ "weather" ], "summary": "weather set to rain", "description": "Reset awful sunny weather to excellent rainy weather", "operationId": "v1WeatherIdDelete", "x-filename": "delete", "parameters": [ { "$ref": "#/parameters/PathId" }, { "$ref": "#/parameters/QueryOffset" }, { "$ref": "#/parameters/QueryTextSearch" }, { "in": "query", "name": "areYouSure", "required": true, "type": "string" }, { "in": "query", "name": "areYouSureSure", "required": true, "type": "string" } ], "responses": { "200": { "description": "Deleted" }, "404": { "description": "Temp not found" } }, "security": [ { "jwtToken": [] } ], "x-permission": "deleteV1WeatherId", "x-autoTag": "V1", "x-fileName": "delete", "x-uniqueOpId": "v1WeatherIdDelete", "x-template-permission": "deleteV1WeatherIdDelete", "x-template-description": "v1WeatherIdDelete", "x-template-resolution": { "a": { "$ref": "#/parameters/HeaderSearchId" }, "b": { "$ref": "#/parameters/HeaderSearchId" }, "c": { "$ref": "#/parameters/HeaderSearchId" } }, "x-json-content-test": "v1WeatherIdDelete" }, "put": { "tags": [ "weather" ], "summary": "weather data", "description": "Create a new weather record.", "operationId": "v1WeatherIdPut", "produces": [ "application/json" ], "parameters": [ { "$ref": "#/parameters/PathId" }, { "in": "body", "name": "v1WeatherIdPut", "description": "Optional description in *Markdown*", "required": true, "schema": { "$ref": "#/definitions/WeatherIdPut" } } ], "responses": { "200": { "description": "Successful temp creation", "schema": { "$ref": "#/definitions/WeatherModel" } }, "422": { "description": "Invalid form data provided" } }, "security": [ { "jwtToken": [] } ], "x-permission": "updateV1WeatherId", "x-autoTag": "V1", "x-fileName": "put", "x-uniqueOpId": "v1WeatherIdPut", "x-template-permission": "updateV1WeatherIdPut", "x-template-description": "v1WeatherIdPut", "x-template-resolution": { "a": { "$ref": "#/parameters/HeaderSearchId" }, "b": { "$ref": "#/parameters/HeaderSearchId" }, "c": { "$ref": "#/parameters/HeaderSearchId" } }, "x-json-content-test": "v1WeatherIdPut" } }, "/weather/id/{id}/pattern": { "get": { "tags": [ "weather" ], "summary": "One weather object", "description": "Get the full weather object", "operationId": "v1WeatherIdPatternGet", "produces": [ "application/json" ], "parameters": [ { "$ref": "#/parameters/PathId" }, { "$ref": "#/parameters/HeaderSearchId" } ], "responses": { "200": { "description": "Successful fetch", "schema": { "$ref": "#/definitions/WeatherModel" } }, "404": { "description": "Path & method combination not found" } }, "security": [ { "jwtToken": [] }, { "apiKey": [] } ], "x-permission": "readV1WeatherIdPattern", "x-autoTag": "V1", "x-fileName": "get", "x-uniqueOpId": "v1WeatherIdPatternGet", "x-template-permission": "readV1WeatherIdPatternGet", "x-template-description": "v1WeatherIdPatternGet", "x-template-resolution": { "a": { "$ref": "#/parameters/HeaderSearchId" }, "b": { "$ref": "#/parameters/HeaderSearchId" }, "c": { "$ref": "#/parameters/HeaderSearchId" } }, "x-json-content-test": "v1WeatherIdPatternGet" } }, "/weather/latest": { "get": { "tags": [ "weather" ], "summary": "lastest weather data", "description": "Get the latest temperatures", "operationId": "v1WeatherLatestGet", "produces": [ "application/json" ], "responses": { "200": { "description": "Successful fetch", "schema": { "$ref": "#/definitions/WeatherModels" } }, "404": { "description": "Temp not found" } }, "security": [ { "jwtToken": [] } ], "x-autoTag": "V1", "x-fileName": "get", "x-uniqueOpId": "v1WeatherLatestGet", "x-template-permission": "readV1WeatherLatestGet", "x-template-description": "v1WeatherLatestGet", "x-template-resolution": { "a": { "$ref": "#/parameters/HeaderSearchId" }, "b": { "$ref": "#/parameters/HeaderSearchId" }, "c": { "$ref": "#/parameters/HeaderSearchId" } }, "x-json-content-test": "v1WeatherLatestGet" } } }, "parameters": { "HeaderSearchId": { "in": "header", "name": "Search-Id", "type": "string", "description": "Unique search {id}", "x-example": "569eecd9-9962-4aed-a0f0-30476c6a82ed" }, "PathId": { "in": "path", "name": "id", "type": "integer", "required": true, "description": "Numeric ID of object to fetch" }, "QueryOffset": { "in": "query", "name": "offset", "required": false, "type": "integer", "description": "The number of items to skip before starting to collect the result set." }, "QueryTextSearch": { "in": "query", "name": "textSearch", "required": false, "type": "string", "description": "Search string to query" } }, "definitions": { "GenericSearchMeta": { "type": "object", "properties": { "totalResultCount": { "type": "number" }, "offset": { "type": "number" }, "limit": { "type": "number" } } }, "LocationPatch": { "type": "object", "properties": { "name": { "type": "string" }, "coordinates": { "type": "array", "items": { "type": "string" } } } }, "LocationPost": { "type": "object", "required": [ "name", "coordinates" ], "properties": { "name": { "type": "string" }, "coordinates": { "type": "array", "items": { "type": "string" } } } }, "LocationPut": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" } } }, "StarWars": { "type": "object", "properties": { "empireName": { "type": "string" }, "rebellious": { "type": "boolean" }, "darthVader": { "type": "boolean" } } }, "WeatherIdPut": { "allOf": [ { "$ref": "#/definitions/WeatherPost" }, { "type": "object", "properties": { "id": { "type": "integer" } } } ] }, "WeatherModel": { "type": "object", "properties": { "id": { "type": "integer" }, "date": { "type": "string", "format": "date" }, "location": { "type": "string" }, "cloudCoverPercentage": { "type": "integer" }, "humidityPercentage": { "type": "integer" }, "temperature": { "type": "number" } } }, "WeatherModels": { "type": "array", "items": { "$ref": "#/definitions/WeatherModel" } }, "WeatherPost": { "type": "object", "properties": { "date": { "type": "string", "format": "date" }, "location": { "type": "string" }, "cloudCoverPercentage": { "type": "integer" }, "humidityPercentage": { "type": "integer" }, "temperature": { "type": "number" } } } } }