basePath: /api/v1 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: description: User account information used in the login process with Username and password properties: Password: type: string 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: object rules.NotebookRuleInput: properties: Location: type: string OrgUnit: type: string type: object rules.ServerRuleInput: properties: Description: type: string ILO: type: string IP: type: string Location: type: string OrgUnit: type: string Responsible: type: string type: object host: localhost:8080 info: contact: email: florian@beisel.it name: Florian Beisel url: http://git.beisel.it/florian description: This is a sample server for a hostname service. license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: Hostname Service API version: "1" paths: /{category}: get: description: List all details for a given category operationId: list-hostnames-by-category parameters: - description: Category of the hostname in: path name: category required: true type: string produces: - application/json responses: "200": description: An array of responses schema: items: $ref: '#/definitions/models.Hostname' type: array security: - Bearer: [] summary: Return a list of hosts and their details filtered by category tags: - Querying Hostnames /{category}/{hostname}: delete: description: List all details for a given category operationId: delete-hostnames-by-category-and-name parameters: - description: Category of the hostname in: path name: category required: true type: string - description: Hostname to delete in: path name: hostname required: true type: string produces: - application/json responses: "200": description: Hostname schema: $ref: '#/definitions/models.SimpleHostnameResponse' security: - Bearer: [] summary: Delete a hostname from the database tags: - Manipulate existing Hostnames get: description: Return details for a single hostname identified by its category operationId: get-hostname-by-category-and-name parameters: - description: Category of the hostname in: path name: category required: true type: string - description: Category of the hostname in: path name: hostname required: true type: string produces: - application/json responses: "200": description: A single response object schema: $ref: '#/definitions/models.Hostname' security: - Bearer: [] summary: Return a single hostname by Category and Name tags: - Querying Hostnames /api/notebook: post: consumes: - application/json description: Generates a hostname for a notebook based on dynamic rules. operationId: insert-notebook-hostname parameters: - description: Input data to generate hostname in: body name: body required: true schema: $ref: '#/definitions/rules.NotebookRuleInput' produces: - application/json responses: "200": description: Hostname schema: $ref: '#/definitions/models.SimpleHostnameResponse' security: - Bearer: [] summary: Generate hostname for category "notebook" tags: - Generating Hostnames put: consumes: - application/json description: Generates a new hostname for a notebook based on dynamic rules. operationId: update-notebook-hostname parameters: - description: Input data to generate hostname in: body name: body required: true schema: $ref: '#/definitions/rules.NotebookRuleInput' produces: - application/json responses: "200": description: Hostname schema: $ref: '#/definitions/models.SimpleHostnameResponse' security: - Bearer: [] summary: Update hostname for category "notebook" tags: - Manipulate existing Hostnames /api/server: post: consumes: - application/json description: Generates a hostname for a notebook based on dynamic rules. operationId: insert-server-hostname parameters: - description: Input data to generate hostname in: body name: body required: true schema: $ref: '#/definitions/rules.ServerRuleInput' produces: - application/json responses: "200": description: Hostname schema: $ref: '#/definitions/models.SimpleHostnameResponse' security: - Bearer: [] summary: Generate hostname for category "notebook" tags: - Generating Hostnames put: consumes: - application/json description: Generates a new hostname for a notebook based on dynamic rules. operationId: update-server-hostname parameters: - description: Input data to generate hostname in: body name: body required: true schema: $ref: '#/definitions/rules.ServerRuleInput' produces: - application/json responses: "200": description: Hostname schema: $ref: '#/definitions/models.SimpleHostnameResponse' security: - Bearer: [] summary: Update hostname for category "notebook" tags: - Manipulate existing Hostnames /hello: get: consumes: - application/json description: Checks whether the user is successfully authenticated operationId: hello produces: - application/json responses: "200": description: OK schema: type: string security: - Bearer: [] summary: Check your authentication tags: - Authentication /login: post: consumes: - application/json description: Authenticate user and return JWT token parameters: - description: Login Credentials in: body name: loginCredentials required: true schema: $ref: '#/definitions/models.LoginCredentials' produces: - application/json responses: "200": description: Successfully authenticated, JWT token returned schema: $ref: '#/definitions/models.TokenResponse' "400": description: Invalid request body schema: $ref: '#/definitions/models.ErrorResponse' "401": description: Invalid login credentials schema: $ref: '#/definitions/models.ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/models.ErrorResponse' summary: User login tags: - Authentication /rules: get: description: Return a list of names of Rules which are known in the RulesRegistry operationId: get-rules produces: - application/json responses: {} security: - Bearer: [] summary: Returns a list of available rules tags: - Querying Rules /rules/:rule: get: description: |- Returns two obea an Input Object and an Output Object describing the Rules stored values and required parameters operationId: get-rule-details produces: - application/json responses: "200": description: Hostname schema: $ref: '#/definitions/models.SimpleHostnameResponse' security: - Bearer: [] summary: Returns details about a rule tags: - Querying Rules securityDefinitions: Bearer: description: Type "Bearer" followed by a space and JWT token. in: header name: Authorization type: apiKey swagger: "2.0"