pomme/docs/swagger.json

191 lines
No EOL
6.6 KiB
JSON

{
"swagger": "2.0",
"info": {
"description": "Pomme is a service that parses zonefiles",
"title": "Pomme",
"termsOfService": "http://freecumextremist.com/",
"contact": {},
"version": "0.0.1"
},
"paths": {
"/api/login": {
"post": {
"description": "login to Pomme\nRate limited: 5 requests every 5 second",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"accounts"
],
"summary": "authenticate as a regular user",
"parameters": [
{
"type": "string",
"description": "Username",
"name": "username",
"in": "query",
"required": true
},
{
"type": "string",
"description": "Password",
"name": "password",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal.GenericResponse-internal_Response"
}
},
"401": {
"description": "authFailed is a 401 error when logging in fails, includes realm",
"schema": {
"$ref": "#/definitions/internal.GenericResponse-internal_Response"
}
}
}
}
},
"/api/parse": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "parse your zonefile\nRate limited: 10 requests every 10 second\nyou must specify \"Bearer\" before entering your token",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"DNS"
],
"summary": "parse your zonefile",
"parameters": [
{
"type": "string",
"description": "Zonefile name",
"name": "filename",
"in": "query",
"required": true
},
{
"type": "string",
"description": "Bearer Token",
"name": "Authorization",
"in": "header",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal.GenericResponse-internal_Response"
}
},
"500": {
"description": "internalServerError is a 500 server error with a logged error call back",
"schema": {
"$ref": "#/definitions/internal.GenericResponse-internal_Response"
}
}
}
}
},
"/api/upload": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "upload takes files from the user and stores it locally to be parsed. Uploads are associated with a specific user.\nRate limited: 10 requests every 10 second\nyou must specify \"Bearer\" before entering your token",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"DNS"
],
"summary": "upload a zonefile",
"parameters": [
{
"type": "file",
"description": "Zonefile to upload",
"name": "file",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Bearer Token",
"name": "Authorization",
"in": "header",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal.GenericResponse-internal_Response"
}
},
"500": {
"description": "internalServerError is a 500 server error with a logged error call back",
"schema": {
"$ref": "#/definitions/internal.GenericResponse-internal_Response"
}
}
}
}
}
},
"definitions": {
"internal.GenericResponse-internal_Response": {
"type": "object",
"properties": {
"response": {
"description": "Response items",
"allOf": [
{
"$ref": "#/definitions/internal.Response"
}
]
}
}
},
"internal.Response": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"status": {
"type": "integer"
}
}
}
},
"securityDefinitions": {
"Bearer": {
"description": "Type \"Bearer\" followed by a space and JWT token.",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}