357 lines
12 KiB
Go
357 lines
12 KiB
Go
// Package docs Code generated by swaggo/swag. DO NOT EDIT
|
|
package docs
|
|
|
|
import "github.com/swaggo/swag"
|
|
|
|
const docTemplate = `{
|
|
"schemes": {{ marshal .Schemes }},
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"description": "{{escape .Description}}",
|
|
"title": "{{.Title}}",
|
|
"contact": {
|
|
"name": "Florian Beisel",
|
|
"url": "http://git.beisel.it/florian",
|
|
"email": "florian@beisel.it"
|
|
},
|
|
"license": {
|
|
"name": "MIT",
|
|
"url": "http://git.beisel.it/florian/hostname-service/"
|
|
},
|
|
"version": "{{.Version}}"
|
|
},
|
|
"host": "{{.Host}}",
|
|
"basePath": "{{.BasePath}}",
|
|
"paths": {
|
|
"/api/notebook": {
|
|
"put": {
|
|
"description": "Generates a new hostname for a notebook based on dynamic rules.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Generating Hostnames"
|
|
],
|
|
"summary": "Update hostname for category \"notebook\"",
|
|
"operationId": "update-notebook-hostname",
|
|
"parameters": [
|
|
{
|
|
"description": "Input data to generate hostname",
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/rules.NotebookRuleInput"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Hostname",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"description": "Generates a hostname for a notebook based on dynamic rules.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Generating Hostnames"
|
|
],
|
|
"summary": "Generate hostname for category \"notebook\"",
|
|
"operationId": "insert-notebook-hostname",
|
|
"parameters": [
|
|
{
|
|
"description": "Input data to generate hostname",
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/rules.NotebookRuleInput"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Hostname",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/hello": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"description": "Checks whether the user is successfully authenticated",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"summary": "Check your authentication",
|
|
"operationId": "hello",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/login": {
|
|
"post": {
|
|
"description": "Authenticate user and return JWT token",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"summary": "User login",
|
|
"parameters": [
|
|
{
|
|
"description": "Login Credentials",
|
|
"name": "loginCredentials",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/models.LoginCredentials"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successfully authenticated, JWT token returned",
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Invalid request body",
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Invalid login credentials",
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal server error",
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/{category}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"description": "List all details for a given category",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Querying Hostnames"
|
|
],
|
|
"summary": "Return a list of hosts and their details filtered by category",
|
|
"operationId": "list-hostnames-by-category",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Category of the hostname",
|
|
"name": "category",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Hostname",
|
|
"schema": {
|
|
"type": "json"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/{category}/{hostname}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"description": "Return details for a single hostname identified by its category",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Querying Hostnames"
|
|
],
|
|
"summary": "Return a single hostname by Category and Name",
|
|
"operationId": "get-hostname-by-category-and-name",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Category of the hostname",
|
|
"name": "category",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "Category of the hostname",
|
|
"name": "hostname",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Hostname",
|
|
"schema": {
|
|
"type": "json"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"description": "List all details for a given category",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Manipulate existing Hostnames"
|
|
],
|
|
"summary": "Delete a hostname from the database",
|
|
"operationId": "delete-hostnames-by-category-and-name",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Category of the hostname",
|
|
"name": "category",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "Hostname to delete",
|
|
"name": "hostname",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Hostname",
|
|
"schema": {
|
|
"type": "json"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"models.LoginCredentials": {
|
|
"description": "User account information used in the login process with Username and password",
|
|
"type": "object",
|
|
"properties": {
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"rules.NotebookRuleInput": {
|
|
"type": "object",
|
|
"properties": {
|
|
"Location": {
|
|
"type": "string"
|
|
},
|
|
"OrgUnit": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"securityDefinitions": {
|
|
"Bearer": {
|
|
"description": "Type \"Bearer\" followed by a space and JWT token.",
|
|
"type": "apiKey",
|
|
"name": "Authorization",
|
|
"in": "header"
|
|
}
|
|
}
|
|
}`
|
|
|
|
// SwaggerInfo holds exported Swagger Info so clients can modify it
|
|
var SwaggerInfo = &swag.Spec{
|
|
Version: "1",
|
|
Host: "localhost:8080",
|
|
BasePath: "/api/v1",
|
|
Schemes: []string{},
|
|
Title: "Hostname Service API",
|
|
Description: "This is a sample server for a hostname service.",
|
|
InfoInstanceName: "swagger",
|
|
SwaggerTemplate: docTemplate,
|
|
LeftDelim: "{{",
|
|
RightDelim: "}}",
|
|
}
|
|
|
|
func init() {
|
|
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
|
|
}
|