Cyclops 4 HPC is the purpose built stack to support large HPC centers with resource accounting and billing of cluster as well as cloud resources.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cyclops-4-hpc/services/credit-system/restapi/embedded_spec.go

2037 lines
50 KiB

// Code generated by go-swagger; DO NOT EDIT.
package restapi
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"encoding/json"
)
var (
// SwaggerJSON embedded version of the swagger document used at generation time
SwaggerJSON json.RawMessage
// FlatSwaggerJSON embedded flattened version of the swagger document used at generation time
FlatSwaggerJSON json.RawMessage
)
func init() {
SwaggerJSON = json.RawMessage([]byte(`{
"schemes": [
"http",
"https"
],
"swagger": "2.0",
"info": {
"description": "An API which supports creation, deletion, listing etc of Credit Manager",
"title": "Credit Manager Management API",
"contact": {
"email": "diego@cyclops-labs.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "1.0.0"
},
"host": "localhost:8000",
"basePath": "/api/v1.0",
"paths": {
"/account/available/{id}": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Credit status of the account with the provided id",
"operationId": "getCredit",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Credit status of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditStatus"
}
},
"404": {
"description": "The account with the provided id doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/create/{id}": {
"get": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "Creates a new account in the system",
"operationId": "createAccount",
"parameters": [
{
"type": "string",
"description": "Id of the account to be created",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"201": {
"description": "Account created, provided information of the new item created",
"schema": {
"$ref": "#/definitions/AccountStatus"
}
},
"409": {
"description": "The account with the id provided already exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/disable/{id}": {
"post": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "Disables the account with the id provided in the system",
"operationId": "disableAccount",
"parameters": [
{
"type": "string",
"description": "Id of the account to be disabled",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Status information of the account with provided id in the system after the operation succeded",
"schema": {
"$ref": "#/definitions/AccountStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/enable/{id}": {
"post": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "Enables the account with the id provided in the system",
"operationId": "enableAccount",
"parameters": [
{
"type": "string",
"description": "Id of the account to be enabled",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Status information of the account with provided id in the system after the operation succeded",
"schema": {
"$ref": "#/definitions/AccountStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/list": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "List of the accounts in the system",
"operationId": "listAccounts",
"responses": {
"200": {
"description": "List of accounts in the system",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/AccountStatus"
}
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/status/{id}": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "Basic status of the account with the id provided in the system",
"operationId": "getAccountStatus",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Status information of the account with provided id in the system",
"schema": {
"$ref": "#/definitions/AccountStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/history/{id}": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Credit history of the customer with id",
"operationId": "getHistory",
"parameters": [
{
"type": "string",
"description": "Id of the account to get the history",
"name": "id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "Boolean variable to control if the system consumptions have to be listed or not",
"name": "filterSystem",
"in": "query"
},
{
"enum": [
"credit",
"cash"
],
"type": "string",
"description": "Medium (cash/credit) to be used as filter",
"name": "medium",
"in": "query"
}
],
"responses": {
"200": {
"description": "Credit status history of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditHistory"
}
},
"404": {
"description": "The endpoint provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/status": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"statusManagement"
],
"summary": "Basic status of the system",
"operationId": "showStatus",
"responses": {
"200": {
"description": "Status information of the system",
"schema": {
"$ref": "#/definitions/Status"
}
}
}
}
},
"/status/{id}": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"statusManagement"
],
"summary": "Basic status of the system",
"operationId": "getStatus",
"parameters": [
{
"enum": [
"kafka-receiver",
"kafka-sender",
"status",
"trigger",
"account",
"credit"
],
"type": "string",
"description": "Id of the endpoint to be checked",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Status information of the system",
"schema": {
"$ref": "#/definitions/Status"
}
},
"404": {
"description": "The endpoint provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/trigger/sample": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"triggerManagement"
],
"summary": "Sample task trigger",
"operationId": "execSample",
"responses": {
"200": {
"description": "Sample task executed successfully"
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/{medium}/available/decrease/{id}": {
"post": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Insert a new reseller in the system.",
"operationId": "decreaseCredit",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
},
{
"type": "number",
"format": "double",
"description": "Amount to be decreased",
"name": "amount",
"in": "query",
"required": true
},
{
"enum": [
"credit",
"cash"
],
"type": "string",
"description": "Medium (cash/credit) to be used in the accounting",
"name": "medium",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Credit status of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/{medium}/available/increase/{id}": {
"post": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Insert a new reseller in the system.",
"operationId": "increaseCredit",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
},
{
"type": "number",
"format": "double",
"description": "Amount to be inccreased",
"name": "amount",
"in": "query",
"required": true
},
{
"enum": [
"credit",
"cash"
],
"type": "string",
"description": "Medium (cash/credit) to be used in the accounting",
"name": "medium",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Credit status of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/{medium}/consume/{id}": {
"post": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Adds a consumption to the system",
"operationId": "addConsumption",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
},
{
"type": "number",
"format": "double",
"description": "Amount to be decreased",
"name": "amount",
"in": "query",
"required": true
},
{
"enum": [
"credit",
"cash"
],
"type": "string",
"description": "Medium (cash/credit) to be used in the accounting",
"name": "medium",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Credit status of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
}
},
"definitions": {
"AccountStatus": {
"type": "object",
"required": [
"Enabled"
],
"properties": {
"AccountID": {
"type": "string",
"x-go-custom-tag": "gorm:\"primary_key\""
},
"CreatedAt": {
"type": "string",
"format": "datetime",
"x-go-custom-tag": "gorm:\"type:timestamptz\""
},
"Enabled": {
"type": "boolean",
"default": true,
"x-go-custom-tag": "gorm:\"default:true\""
}
}
},
"CreditEvents": {
"type": "object",
"properties": {
"AccountId": {
"type": "string",
"x-go-custom-tag": "gorm:\"index\""
},
"AuthorizedBy": {
"type": "string"
},
"Delta": {
"type": "number",
"format": "double",
"x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
},
"EventType": {
"type": "string",
"default": "Consumption",
"enum": [
"AuthorizedIncrease",
"AuthorizedDecrease",
"Consumption",
"AutomaticCreditExpiry",
"Refund"
],
"x-go-custom-tag": "gorm:\"index;default:Consumption\""
},
"ID": {
"type": "integer",
"x-go-custom-tag": "gorm:\"primary_key\""
},
"Medium": {
"type": "string",
"default": "CREDIT",
"enum": [
"CREDIT",
"CASH"
],
"x-go-custom-tag": "gorm:\"index;default:CREDIT\""
},
"Timestamp": {
"type": "string",
"format": "datetime",
"x-go-custom-tag": "gorm:\"type:timestamptz\""
}
}
},
"CreditHistory": {
"type": "object",
"properties": {
"AccountID": {
"type": "string",
"x-go-custom-tag": "gorm:\"primary_key\""
},
"Events": {
"type": "array",
"items": {
"$ref": "#/definitions/Event"
}
}
}
},
"CreditStatus": {
"type": "object",
"properties": {
"AccountID": {
"type": "string",
"x-go-custom-tag": "gorm:\"primary_key\""
},
"AvailableCash": {
"type": "number",
"format": "double",
"x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
},
"AvailableCredit": {
"type": "number",
"format": "double",
"x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
},
"LastUpdate": {
"type": "string",
"format": "datetime",
"x-go-custom-tag": "gorm:\"type:timestamptz\""
}
}
},
"ErrorResponse": {
"type": "object",
"required": [
"errorString"
],
"properties": {
"errorString": {
"type": "string"
}
}
},
"Event": {
"type": "object",
"properties": {
"AuthorizedBy": {
"type": "string"
},
"Delta": {
"type": "number",
"format": "double",
"x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
},
"EventType": {
"type": "string",
"default": "Consumption",
"enum": [
"AuthorizedIncrease",
"AuthorizedDecrease",
"Consumption",
"AutomaticCreditExpiry",
"Refund"
],
"x-go-custom-tag": "gorm:\"index;default:Consumption\""
},
"Medium": {
"type": "string",
"default": "CREDIT",
"enum": [
"CREDIT",
"CASH"
],
"x-go-custom-tag": "gorm:\"index;default:CREDIT\""
},
"Timestamp": {
"type": "string",
"format": "datetime",
"x-go-custom-tag": "gorm:\"type:timestamptz\""
}
}
},
"Status": {
"type": "object",
"required": [
"SystemState"
],
"properties": {
"AverageResponseTime": {
"type": "number",
"format": "double"
},
"DBState": {
"type": "string"
},
"LastRequest": {
"type": "string"
},
"RequestsBoT": {
"type": "integer"
},
"RequestsLastHour": {
"type": "integer"
},
"RequestsToday": {
"type": "integer"
},
"SystemState": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"APIKeyHeader": {
"type": "apiKey",
"name": "X-API-KEY",
"in": "header"
},
"APIKeyParam": {
"type": "apiKey",
"name": "api_key",
"in": "query"
},
"Keycloak": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "http://localhost:8080/auth/realms/Dev/protocol/openid-connect/auth",
"tokenUrl": "http://localhost:8080/auth/realms/Dev/protocol/openid-connect/token",
"scopes": {
"admin": "Admin scope",
"user": "User scope"
}
}
},
"security": [
{
"Keycloak": [
"user",
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"tags": [
{
"description": "Actions relating to the reporting of the state of the service",
"name": "statusManagement"
},
{
"description": "Actions relating to the periodics actions to be triggered in the system",
"name": "triggerManagement"
},
{
"description": "Actions relating to the control of the credits per account",
"name": "creditManagement"
},
{
"description": "Actions relating to the account management in the service",
"name": "accountManagement"
}
]
}`))
FlatSwaggerJSON = json.RawMessage([]byte(`{
"schemes": [
"http",
"https"
],
"swagger": "2.0",
"info": {
"description": "An API which supports creation, deletion, listing etc of Credit Manager",
"title": "Credit Manager Management API",
"contact": {
"email": "diego@cyclops-labs.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "1.0.0"
},
"host": "localhost:8000",
"basePath": "/api/v1.0",
"paths": {
"/account/available/{id}": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Credit status of the account with the provided id",
"operationId": "getCredit",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Credit status of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditStatus"
}
},
"404": {
"description": "The account with the provided id doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/create/{id}": {
"get": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "Creates a new account in the system",
"operationId": "createAccount",
"parameters": [
{
"type": "string",
"description": "Id of the account to be created",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"201": {
"description": "Account created, provided information of the new item created",
"schema": {
"$ref": "#/definitions/AccountStatus"
}
},
"409": {
"description": "The account with the id provided already exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/disable/{id}": {
"post": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "Disables the account with the id provided in the system",
"operationId": "disableAccount",
"parameters": [
{
"type": "string",
"description": "Id of the account to be disabled",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Status information of the account with provided id in the system after the operation succeded",
"schema": {
"$ref": "#/definitions/AccountStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/enable/{id}": {
"post": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "Enables the account with the id provided in the system",
"operationId": "enableAccount",
"parameters": [
{
"type": "string",
"description": "Id of the account to be enabled",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Status information of the account with provided id in the system after the operation succeded",
"schema": {
"$ref": "#/definitions/AccountStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/list": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "List of the accounts in the system",
"operationId": "listAccounts",
"responses": {
"200": {
"description": "List of accounts in the system",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/AccountStatus"
}
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/account/status/{id}": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"accountManagement"
],
"summary": "Basic status of the account with the id provided in the system",
"operationId": "getAccountStatus",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Status information of the account with provided id in the system",
"schema": {
"$ref": "#/definitions/AccountStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/history/{id}": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Credit history of the customer with id",
"operationId": "getHistory",
"parameters": [
{
"type": "string",
"description": "Id of the account to get the history",
"name": "id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "Boolean variable to control if the system consumptions have to be listed or not",
"name": "filterSystem",
"in": "query"
},
{
"enum": [
"credit",
"cash"
],
"type": "string",
"description": "Medium (cash/credit) to be used as filter",
"name": "medium",
"in": "query"
}
],
"responses": {
"200": {
"description": "Credit status history of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditHistory"
}
},
"404": {
"description": "The endpoint provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/status": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"statusManagement"
],
"summary": "Basic status of the system",
"operationId": "showStatus",
"responses": {
"200": {
"description": "Status information of the system",
"schema": {
"$ref": "#/definitions/Status"
}
}
}
}
},
"/status/{id}": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"statusManagement"
],
"summary": "Basic status of the system",
"operationId": "getStatus",
"parameters": [
{
"enum": [
"kafka-receiver",
"kafka-sender",
"status",
"trigger",
"account",
"credit"
],
"type": "string",
"description": "Id of the endpoint to be checked",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Status information of the system",
"schema": {
"$ref": "#/definitions/Status"
}
},
"404": {
"description": "The endpoint provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/trigger/sample": {
"get": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"produces": [
"application/json"
],
"tags": [
"triggerManagement"
],
"summary": "Sample task trigger",
"operationId": "execSample",
"responses": {
"200": {
"description": "Sample task executed successfully"
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/{medium}/available/decrease/{id}": {
"post": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Insert a new reseller in the system.",
"operationId": "decreaseCredit",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
},
{
"type": "number",
"format": "double",
"description": "Amount to be decreased",
"name": "amount",
"in": "query",
"required": true
},
{
"enum": [
"credit",
"cash"
],
"type": "string",
"description": "Medium (cash/credit) to be used in the accounting",
"name": "medium",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Credit status of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/{medium}/available/increase/{id}": {
"post": {
"security": [
{
"Keycloak": [
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Insert a new reseller in the system.",
"operationId": "increaseCredit",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
},
{
"type": "number",
"format": "double",
"description": "Amount to be inccreased",
"name": "amount",
"in": "query",
"required": true
},
{
"enum": [
"credit",
"cash"
],
"type": "string",
"description": "Medium (cash/credit) to be used in the accounting",
"name": "medium",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Credit status of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
},
"/{medium}/consume/{id}": {
"post": {
"security": [
{
"Keycloak": [
"user"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"creditManagement"
],
"summary": "Adds a consumption to the system",
"operationId": "addConsumption",
"parameters": [
{
"type": "string",
"description": "Id of the account to be checked",
"name": "id",
"in": "path",
"required": true
},
{
"type": "number",
"format": "double",
"description": "Amount to be decreased",
"name": "amount",
"in": "query",
"required": true
},
{
"enum": [
"credit",
"cash"
],
"type": "string",
"description": "Medium (cash/credit) to be used in the accounting",
"name": "medium",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Credit status of the account with the provided id",
"schema": {
"$ref": "#/definitions/CreditStatus"
}
},
"404": {
"description": "The account with the id provided doesn't exist",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
},
"500": {
"description": "Something unexpected happend, error raised",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
}
}
}
}
},
"definitions": {
"AccountStatus": {
"type": "object",
"required": [
"Enabled"
],
"properties": {
"AccountID": {
"type": "string",
"x-go-custom-tag": "gorm:\"primary_key\""
},
"CreatedAt": {
"type": "string",
"format": "datetime",
"x-go-custom-tag": "gorm:\"type:timestamptz\""
},
"Enabled": {
"type": "boolean",
"default": true,
"x-go-custom-tag": "gorm:\"default:true\""
}
}
},
"CreditEvents": {
"type": "object",
"properties": {
"AccountId": {
"type": "string",
"x-go-custom-tag": "gorm:\"index\""
},
"AuthorizedBy": {
"type": "string"
},
"Delta": {
"type": "number",
"format": "double",
"x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
},
"EventType": {
"type": "string",
"default": "Consumption",
"enum": [
"AuthorizedIncrease",
"AuthorizedDecrease",
"Consumption",
"AutomaticCreditExpiry",
"Refund"
],
"x-go-custom-tag": "gorm:\"index;default:Consumption\""
},
"ID": {
"type": "integer",
"x-go-custom-tag": "gorm:\"primary_key\""
},
"Medium": {
"type": "string",
"default": "CREDIT",
"enum": [
"CREDIT",
"CASH"
],
"x-go-custom-tag": "gorm:\"index;default:CREDIT\""
},
"Timestamp": {
"type": "string",
"format": "datetime",
"x-go-custom-tag": "gorm:\"type:timestamptz\""
}
}
},
"CreditHistory": {
"type": "object",
"properties": {
"AccountID": {
"type": "string",
"x-go-custom-tag": "gorm:\"primary_key\""
},
"Events": {
"type": "array",
"items": {
"$ref": "#/definitions/Event"
}
}
}
},
"CreditStatus": {
"type": "object",
"properties": {
"AccountID": {
"type": "string",
"x-go-custom-tag": "gorm:\"primary_key\""
},
"AvailableCash": {
"type": "number",
"format": "double",
"x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
},
"AvailableCredit": {
"type": "number",
"format": "double",
"x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
},
"LastUpdate": {
"type": "string",
"format": "datetime",
"x-go-custom-tag": "gorm:\"type:timestamptz\""
}
}
},
"ErrorResponse": {
"type": "object",
"required": [
"errorString"
],
"properties": {
"errorString": {
"type": "string"
}
}
},
"Event": {
"type": "object",
"properties": {
"AuthorizedBy": {
"type": "string"
},
"Delta": {
"type": "number",
"format": "double",
"x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
},
"EventType": {
"type": "string",
"default": "Consumption",
"enum": [
"AuthorizedIncrease",
"AuthorizedDecrease",
"Consumption",
"AutomaticCreditExpiry",
"Refund"
],
"x-go-custom-tag": "gorm:\"index;default:Consumption\""
},
"Medium": {
"type": "string",
"default": "CREDIT",
"enum": [
"CREDIT",
"CASH"
],
"x-go-custom-tag": "gorm:\"index;default:CREDIT\""
},
"Timestamp": {
"type": "string",
"format": "datetime",
"x-go-custom-tag": "gorm:\"type:timestamptz\""
}
}
},
"Status": {
"type": "object",
"required": [
"SystemState"
],
"properties": {
"AverageResponseTime": {
"type": "number",
"format": "double"
},
"DBState": {
"type": "string"
},
"LastRequest": {
"type": "string"
},
"RequestsBoT": {
"type": "integer"
},
"RequestsLastHour": {
"type": "integer"
},
"RequestsToday": {
"type": "integer"
},
"SystemState": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"APIKeyHeader": {
"type": "apiKey",
"name": "X-API-KEY",
"in": "header"
},
"APIKeyParam": {
"type": "apiKey",
"name": "api_key",
"in": "query"
},
"Keycloak": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "http://localhost:8080/auth/realms/Dev/protocol/openid-connect/auth",
"tokenUrl": "http://localhost:8080/auth/realms/Dev/protocol/openid-connect/token",
"scopes": {
"admin": "Admin scope",
"user": "User scope"
}
}
},
"security": [
{
"Keycloak": [
"user",
"admin"
]
},
{
"APIKeyHeader": []
},
{
"APIKeyParam": []
}
],
"tags": [
{
"description": "Actions relating to the reporting of the state of the service",
"name": "statusManagement"
},
{
"description": "Actions relating to the periodics actions to be triggered in the system",
"name": "triggerManagement"
},
{
"description": "Actions relating to the control of the credits per account",
"name": "creditManagement"
},
{
"description": "Actions relating to the account management in the service",
"name": "accountManagement"
}
]
}`))
}