📝 Update generated documentation with new Models

This commit contains the new documentation for the API endpoints that
will now use the newly generated models that describe their reponse
correctly
This commit is contained in:
Florian Beisel 2024-01-18 00:15:14 +01:00
parent f0118ab8ea
commit c08de78984
Signed by: florian
GPG Key ID: 79ECA2E54996FF4D
3 changed files with 205 additions and 71 deletions

View File

@ -52,7 +52,7 @@ const docTemplate = `{
"200": { "200": {
"description": "Hostname", "description": "Hostname",
"schema": { "schema": {
"type": "string" "$ref": "#/definitions/models.SimpleHostnameResponse"
} }
} }
} }
@ -85,7 +85,7 @@ const docTemplate = `{
"200": { "200": {
"description": "Hostname", "description": "Hostname",
"schema": { "schema": {
"type": "string" "$ref": "#/definitions/models.SimpleHostnameResponse"
} }
} }
} }
@ -148,37 +148,25 @@ const docTemplate = `{
"200": { "200": {
"description": "Successfully authenticated, JWT token returned", "description": "Successfully authenticated, JWT token returned",
"schema": { "schema": {
"type": "object", "$ref": "#/definitions/models.TokenResponse"
"additionalProperties": {
"type": "string"
}
} }
}, },
"400": { "400": {
"description": "Invalid request body", "description": "Invalid request body",
"schema": { "schema": {
"type": "object", "$ref": "#/definitions/models.ErrorResponse"
"additionalProperties": {
"type": "string"
}
} }
}, },
"401": { "401": {
"description": "Invalid login credentials", "description": "Invalid login credentials",
"schema": { "schema": {
"type": "object", "$ref": "#/definitions/models.ErrorResponse"
"additionalProperties": {
"type": "string"
}
} }
}, },
"500": { "500": {
"description": "Internal server error", "description": "Internal server error",
"schema": { "schema": {
"type": "object", "$ref": "#/definitions/models.ErrorResponse"
"additionalProperties": {
"type": "string"
}
} }
} }
} }
@ -211,9 +199,12 @@ const docTemplate = `{
], ],
"responses": { "responses": {
"200": { "200": {
"description": "Hostname", "description": "An array of responses",
"schema": { "schema": {
"type": "json" "type": "array",
"items": {
"$ref": "#/definitions/models.Hostname"
}
} }
} }
} }
@ -253,9 +244,9 @@ const docTemplate = `{
], ],
"responses": { "responses": {
"200": { "200": {
"description": "Hostname", "description": "A single response object",
"schema": { "schema": {
"type": "json" "$ref": "#/definitions/models.Hostname"
} }
} }
} }
@ -295,7 +286,7 @@ const docTemplate = `{
"200": { "200": {
"description": "Hostname", "description": "Hostname",
"schema": { "schema": {
"type": "json" "$ref": "#/definitions/models.SimpleHostnameResponse"
} }
} }
} }
@ -303,14 +294,72 @@ const docTemplate = `{
} }
}, },
"definitions": { "definitions": {
"models.ErrorResponse": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
},
"models.Hostname": {
"description": "Model of the Hostname as it is represented in the database",
"type": "object",
"properties": {
"Category": {
"description": "Category / Rule that was used when generating the hostname",
"type": "string",
"example": "notebook"
},
"Created_at": {
"description": "Creation Time of the entry",
"type": "string",
"example": "2024-01-16T12:53:59Z"
},
"Hostname": {
"description": "Generated hostname",
"type": "string",
"example": "ISEHENNB0009"
},
"Id": {
"description": "Internal ID of the Hostname within the database",
"type": "integer",
"example": 25
},
"Parameters": {
"description": "Parameter object of rule specific attributes, see rule.* models",
"type": "object",
"additionalProperties": true
}
}
},
"models.LoginCredentials": { "models.LoginCredentials": {
"description": "User account information used in the login process with Username and password", "description": "User account information used in the login process with Username and password",
"type": "object", "type": "object",
"properties": { "properties": {
"password": { "Password": {
"type": "string" "type": "string"
}, },
"username": { "Username": {
"type": "string"
}
}
},
"models.SimpleHostnameResponse": {
"description": "Model of the Hostname as returned by POST endpoint",
"type": "object",
"properties": {
"Hostname": {
"description": "Name of the newly generated host",
"type": "string"
}
}
},
"models.TokenResponse": {
"description": "Model returned after successful login",
"type": "object",
"properties": {
"token": {
"type": "string" "type": "string"
} }
} }

View File

@ -46,7 +46,7 @@
"200": { "200": {
"description": "Hostname", "description": "Hostname",
"schema": { "schema": {
"type": "string" "$ref": "#/definitions/models.SimpleHostnameResponse"
} }
} }
} }
@ -79,7 +79,7 @@
"200": { "200": {
"description": "Hostname", "description": "Hostname",
"schema": { "schema": {
"type": "string" "$ref": "#/definitions/models.SimpleHostnameResponse"
} }
} }
} }
@ -142,37 +142,25 @@
"200": { "200": {
"description": "Successfully authenticated, JWT token returned", "description": "Successfully authenticated, JWT token returned",
"schema": { "schema": {
"type": "object", "$ref": "#/definitions/models.TokenResponse"
"additionalProperties": {
"type": "string"
}
} }
}, },
"400": { "400": {
"description": "Invalid request body", "description": "Invalid request body",
"schema": { "schema": {
"type": "object", "$ref": "#/definitions/models.ErrorResponse"
"additionalProperties": {
"type": "string"
}
} }
}, },
"401": { "401": {
"description": "Invalid login credentials", "description": "Invalid login credentials",
"schema": { "schema": {
"type": "object", "$ref": "#/definitions/models.ErrorResponse"
"additionalProperties": {
"type": "string"
}
} }
}, },
"500": { "500": {
"description": "Internal server error", "description": "Internal server error",
"schema": { "schema": {
"type": "object", "$ref": "#/definitions/models.ErrorResponse"
"additionalProperties": {
"type": "string"
}
} }
} }
} }
@ -205,9 +193,12 @@
], ],
"responses": { "responses": {
"200": { "200": {
"description": "Hostname", "description": "An array of responses",
"schema": { "schema": {
"type": "json" "type": "array",
"items": {
"$ref": "#/definitions/models.Hostname"
}
} }
} }
} }
@ -247,9 +238,9 @@
], ],
"responses": { "responses": {
"200": { "200": {
"description": "Hostname", "description": "A single response object",
"schema": { "schema": {
"type": "json" "$ref": "#/definitions/models.Hostname"
} }
} }
} }
@ -289,7 +280,7 @@
"200": { "200": {
"description": "Hostname", "description": "Hostname",
"schema": { "schema": {
"type": "json" "$ref": "#/definitions/models.SimpleHostnameResponse"
} }
} }
} }
@ -297,14 +288,72 @@
} }
}, },
"definitions": { "definitions": {
"models.ErrorResponse": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
},
"models.Hostname": {
"description": "Model of the Hostname as it is represented in the database",
"type": "object",
"properties": {
"Category": {
"description": "Category / Rule that was used when generating the hostname",
"type": "string",
"example": "notebook"
},
"Created_at": {
"description": "Creation Time of the entry",
"type": "string",
"example": "2024-01-16T12:53:59Z"
},
"Hostname": {
"description": "Generated hostname",
"type": "string",
"example": "ISEHENNB0009"
},
"Id": {
"description": "Internal ID of the Hostname within the database",
"type": "integer",
"example": 25
},
"Parameters": {
"description": "Parameter object of rule specific attributes, see rule.* models",
"type": "object",
"additionalProperties": true
}
}
},
"models.LoginCredentials": { "models.LoginCredentials": {
"description": "User account information used in the login process with Username and password", "description": "User account information used in the login process with Username and password",
"type": "object", "type": "object",
"properties": { "properties": {
"password": { "Password": {
"type": "string" "type": "string"
}, },
"username": { "Username": {
"type": "string"
}
}
},
"models.SimpleHostnameResponse": {
"description": "Model of the Hostname as returned by POST endpoint",
"type": "object",
"properties": {
"Hostname": {
"description": "Name of the newly generated host",
"type": "string"
}
}
},
"models.TokenResponse": {
"description": "Model returned after successful login",
"type": "object",
"properties": {
"token": {
"type": "string" "type": "string"
} }
} }

View File

@ -1,12 +1,54 @@
basePath: /api/v1 basePath: /api/v1
definitions: definitions:
models.ErrorResponse:
properties:
error:
type: string
type: object
models.Hostname:
description: Model of the Hostname as it is represented in the database
properties:
Category:
description: Category / Rule that was used when generating the hostname
example: notebook
type: string
Created_at:
description: Creation Time of the entry
example: "2024-01-16T12:53:59Z"
type: string
Hostname:
description: Generated hostname
example: ISEHENNB0009
type: string
Id:
description: Internal ID of the Hostname within the database
example: 25
type: integer
Parameters:
additionalProperties: true
description: Parameter object of rule specific attributes, see rule.* models
type: object
type: object
models.LoginCredentials: models.LoginCredentials:
description: User account information used in the login process with Username description: User account information used in the login process with Username
and password and password
properties: properties:
password: Password:
type: string type: string
username: Username:
type: string
type: object
models.SimpleHostnameResponse:
description: Model of the Hostname as returned by POST endpoint
properties:
Hostname:
description: Name of the newly generated host
type: string
type: object
models.TokenResponse:
description: Model returned after successful login
properties:
token:
type: string type: string
type: object type: object
rules.NotebookRuleInput: rules.NotebookRuleInput:
@ -43,9 +85,11 @@ paths:
- application/json - application/json
responses: responses:
"200": "200":
description: Hostname description: An array of responses
schema: schema:
type: json items:
$ref: '#/definitions/models.Hostname'
type: array
security: security:
- Bearer: [] - Bearer: []
summary: Return a list of hosts and their details filtered by category summary: Return a list of hosts and their details filtered by category
@ -72,7 +116,7 @@ paths:
"200": "200":
description: Hostname description: Hostname
schema: schema:
type: json $ref: '#/definitions/models.SimpleHostnameResponse'
security: security:
- Bearer: [] - Bearer: []
summary: Delete a hostname from the database summary: Delete a hostname from the database
@ -96,9 +140,9 @@ paths:
- application/json - application/json
responses: responses:
"200": "200":
description: Hostname description: A single response object
schema: schema:
type: json $ref: '#/definitions/models.Hostname'
security: security:
- Bearer: [] - Bearer: []
summary: Return a single hostname by Category and Name summary: Return a single hostname by Category and Name
@ -123,7 +167,7 @@ paths:
"200": "200":
description: Hostname description: Hostname
schema: schema:
type: string $ref: '#/definitions/models.SimpleHostnameResponse'
summary: Generate hostname for category "notebook" summary: Generate hostname for category "notebook"
tags: tags:
- Generating Hostnames - Generating Hostnames
@ -145,7 +189,7 @@ paths:
"200": "200":
description: Hostname description: Hostname
schema: schema:
type: string $ref: '#/definitions/models.SimpleHostnameResponse'
summary: Update hostname for category "notebook" summary: Update hostname for category "notebook"
tags: tags:
- Generating Hostnames - Generating Hostnames
@ -185,27 +229,19 @@ paths:
"200": "200":
description: Successfully authenticated, JWT token returned description: Successfully authenticated, JWT token returned
schema: schema:
additionalProperties: $ref: '#/definitions/models.TokenResponse'
type: string
type: object
"400": "400":
description: Invalid request body description: Invalid request body
schema: schema:
additionalProperties: $ref: '#/definitions/models.ErrorResponse'
type: string
type: object
"401": "401":
description: Invalid login credentials description: Invalid login credentials
schema: schema:
additionalProperties: $ref: '#/definitions/models.ErrorResponse'
type: string
type: object
"500": "500":
description: Internal server error description: Internal server error
schema: schema:
additionalProperties: $ref: '#/definitions/models.ErrorResponse'
type: string
type: object
summary: User login summary: User login
tags: tags:
- Authentication - Authentication