// 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 customers and products",
    "title": "Customer Database 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": {
    "/customer": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerManagement"
        ],
        "summary": "List all the customers in the system",
        "operationId": "listCustomers",
        "responses": {
          "200": {
            "description": "List of customers in the system returned",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Customer"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerManagement"
        ],
        "summary": "Insert a new customer in the system.",
        "operationId": "addCustomer",
        "parameters": [
          {
            "description": "Customer to be added",
            "name": "customer",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Customer"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New customer was added successfully",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "202": {
            "description": "The new customer was added but there might have been some fails when adding part of the data",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "400": {
            "description": "Invalid input, object invalid"
          },
          "409": {
            "description": "The given item already exists",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/customer/{id}": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerManagement"
        ],
        "summary": "Return the information about the customer with the given id",
        "operationId": "getCustomer",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the customer to be retrieved",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Customer with the id given in the system returned",
            "schema": {
              "$ref": "#/definitions/Customer"
            }
          },
          "404": {
            "description": "The customer with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerManagement"
        ],
        "summary": "Updates the information of the customer with the given id",
        "operationId": "updateCustomer",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the customer to be updated",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Customer to be updated",
            "name": "customer",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Customer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Customer with the given id was updated",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "202": {
            "description": "The customer was updated but there might have been some fails when adding part of the data",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "404": {
            "description": "The customer with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/product": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "productManagement"
        ],
        "summary": "List all the products in the system",
        "operationId": "listProducts",
        "responses": {
          "200": {
            "description": "List of products in the system returned",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Product"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "productManagement"
        ],
        "summary": "Insert a new product in the system.",
        "operationId": "addProduct",
        "parameters": [
          {
            "description": "Product to be added",
            "name": "product",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Product"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New product was added successfully",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "400": {
            "description": "Invalid input, object invalid"
          },
          "409": {
            "description": "The given item already exists",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/product/{id}": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "productManagement"
        ],
        "summary": "Return the information about the product with the given id",
        "operationId": "getProduct",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the product to be retrieved",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Product with the id given in the system returned",
            "schema": {
              "$ref": "#/definitions/Product"
            }
          },
          "404": {
            "description": "The product with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "productManagement"
        ],
        "summary": "Updates the information of the product with the given id",
        "operationId": "updateProduct",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the product to be updated",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Product to be updated",
            "name": "product",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Product"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product with the given id was updated",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "404": {
            "description": "The product with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/reseller": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "resellerManagement"
        ],
        "summary": "List all the resellers in the system",
        "operationId": "listResellers",
        "responses": {
          "200": {
            "description": "List of resellers in the system returned",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Reseller"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "resellerManagement"
        ],
        "summary": "Insert a new reseller in the system.",
        "operationId": "addReseller",
        "parameters": [
          {
            "description": "Reseller to be added",
            "name": "reseller",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Reseller"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New reseller was added successfully",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "202": {
            "description": "The new reseller was added but there might have been some fails when adding part of the data",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "400": {
            "description": "Invalid input, object invalid"
          },
          "409": {
            "description": "The given item already exists",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/reseller/{id}": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "resellerManagement"
        ],
        "summary": "Return the information about the reseller with the given id",
        "operationId": "getReseller",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the reseller to be retrieved",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Reseller with the id given in the system returned",
            "schema": {
              "$ref": "#/definitions/Reseller"
            }
          },
          "404": {
            "description": "The reseller with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "resellerManagement"
        ],
        "summary": "Updates the information of the reseller with the given id",
        "operationId": "updateReseller",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the reseller to be updated",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Reseller to be updated",
            "name": "reseller",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Reseller"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Reseller with the given id was updated",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "202": {
            "description": "The reseller was updated but there might have been some fails when adding part of the data",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "404": {
            "description": "The reseller with the given id wasn't found",
            "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",
              "customer",
              "product",
              "reseller"
            ],
            "type": "string",
            "description": "Id of the product to be retrieved",
            "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"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Customer": {
      "type": "object",
      "properties": {
        "AbacusCode": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "Address": {
          "type": "string"
        },
        "ApiLink": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"-\""
        },
        "BillContact": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "BillCurrency": {
          "description": "ISO-4217 currency code",
          "type": "string",
          "default": "CHF",
          "enum": [
            "AED",
            "AFN",
            "ALL",
            "AMD",
            "ANG",
            "AOA",
            "ARS",
            "AUD",
            "AWG",
            "AZN",
            "BAM",
            "BBD",
            "BDT",
            "BGN",
            "BHD",
            "BIF",
            "BMD",
            "BND",
            "BOB",
            "BOV",
            "BRL",
            "BSD",
            "BTN",
            "BWP",
            "BYN",
            "BZD",
            "CAD",
            "CDF",
            "CHE",
            "CHF",
            "CHW",
            "CLF",
            "CLP",
            "CNY",
            "COP",
            "COU",
            "CRC",
            "CUC",
            "CUP",
            "CVE",
            "CZK",
            "DJF",
            "DKK",
            "DOP",
            "DZD",
            "EGP",
            "ERN",
            "ETB",
            "EUR",
            "FJD",
            "FKP",
            "GBP",
            "GEL",
            "GHS",
            "GIP",
            "GMD",
            "GNF",
            "GTQ",
            "GYD",
            "HKD",
            "HNL",
            "HRK",
            "HTG",
            "HUF",
            "IDR",
            "ILS",
            "INR",
            "IQD",
            "IRR",
            "ISK",
            "JMD",
            "JOD",
            "JPY",
            "KES",
            "KGS",
            "KHR",
            "KMF",
            "KPW",
            "KRW",
            "KWD",
            "KYD",
            "KZT",
            "LAK",
            "LBP",
            "LKR",
            "LRD",
            "LSL",
            "LYD",
            "MAD",
            "MDL",
            "MGA",
            "MKD",
            "MMK",
            "MNT",
            "MOP",
            "MRU",
            "MUR",
            "MVR",
            "MWK",
            "MXN",
            "MXV",
            "MYR",
            "MZN",
            "NAD",
            "NGN",
            "NIO",
            "NOK",
            "NPR",
            "NZD",
            "OMR",
            "PAB",
            "PEN",
            "PGK",
            "PHP",
            "PKR",
            "PLN",
            "PYG",
            "QAR",
            "RON",
            "RSD",
            "RUB",
            "RWF",
            "SAR",
            "SBD",
            "SCR",
            "SDG",
            "SEK",
            "SGD",
            "SHP",
            "SLL",
            "SOS",
            "SRD",
            "SSP",
            "STN",
            "SVC",
            "SYP",
            "SZL",
            "THB",
            "TJS",
            "TMT",
            "TND",
            "TOP",
            "TRY",
            "TTD",
            "TWD",
            "TZS",
            "UAH",
            "UGX",
            "USD",
            "USN",
            "UYI",
            "UYU",
            "UYW",
            "UZS",
            "VES",
            "VND",
            "VUV",
            "WST",
            "XAF",
            "XAG",
            "XAU",
            "XBA",
            "XBB",
            "XBC",
            "XBD",
            "XCD",
            "XDR",
            "XOF",
            "XPD",
            "XPF",
            "XPT",
            "XSU",
            "XTS",
            "XUA",
            "XXX",
            "YER",
            "ZAR",
            "ZMW",
            "ZWL"
          ],
          "x-go-custom-tag": "gorm:\"default:CHF\""
        },
        "BillPeriod": {
          "type": "string",
          "default": "monthly",
          "enum": [
            "daily",
            "weekly",
            "bi-weekly",
            "monthly",
            "bi-monthly",
            "quarterly",
            "semi-annually",
            "annually"
          ],
          "x-go-custom-tag": "gorm:\"default:monthly\""
        },
        "Billable": {
          "type": "boolean",
          "default": true,
          "x-go-custom-tag": "gorm:\"default:true\""
        },
        "BillingCode": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "CancelDate": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2100-12-31\""
        },
        "ContractEnd": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2030-12-31\""
        },
        "ContractStart": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2019-01-01\""
        },
        "CustomerId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid\""
        },
        "DeletedAt": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"type:timestamptz\"",
          "x-nullable": true
        },
        "Discount": {
          "type": "number",
          "format": "double",
          "default": 0,
          "x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
        },
        "EmailBcc": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "EmailCc": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "EmailTo": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "InvoiceMode": {
          "type": "string",
          "default": "email",
          "enum": [
            "email",
            "post"
          ],
          "x-go-custom-tag": "gorm:\"default:email\""
        },
        "IsActive": {
          "type": "boolean",
          "default": true,
          "x-go-custom-tag": "gorm:\"default:true\""
        },
        "Language": {
          "description": "ISO-369-1 alpha-2 language codes",
          "type": "string",
          "default": "DE",
          "enum": [
            "AA",
            "AB",
            "AE",
            "AF",
            "AK",
            "AM",
            "AN",
            "AR",
            "AS",
            "AV",
            "AY",
            "AZ",
            "BA",
            "BE",
            "BG",
            "BH",
            "BI",
            "BM",
            "BN",
            "BO",
            "BR",
            "BS",
            "CA",
            "CE",
            "CH",
            "CO",
            "CR",
            "CS",
            "CU",
            "CV",
            "CY",
            "DA",
            "DE",
            "DV",
            "DZ",
            "EE",
            "EL",
            "EN",
            "EO",
            "ES",
            "ET",
            "EU",
            "FA",
            "FF",
            "FI",
            "FJ",
            "FO",
            "FR",
            "FY",
            "GA",
            "GD",
            "GL",
            "GN",
            "GU",
            "GV",
            "HA",
            "HE",
            "HI",
            "HO",
            "HR",
            "HT",
            "HU",
            "HY",
            "HZ",
            "IA",
            "ID",
            "IE",
            "IG",
            "II",
            "IK",
            "IO",
            "IS",
            "IT",
            "IU",
            "JA",
            "JV",
            "KA",
            "KG",
            "KI",
            "KJ",
            "KK",
            "KL",
            "KM",
            "KN",
            "KO",
            "KR",
            "KS",
            "KU",
            "KV",
            "KW",
            "KY",
            "LA",
            "LB",
            "LG",
            "LI",
            "LN",
            "LO",
            "LT",
            "LU",
            "LV",
            "MG",
            "MH",
            "MI",
            "MK",
            "ML",
            "MN",
            "MR",
            "MS",
            "MT",
            "MY",
            "NA",
            "NB",
            "ND",
            "NE",
            "NG",
            "NL",
            "NN",
            "NO",
            "NR",
            "NV",
            "NY",
            "OC",
            "OJ",
            "OM",
            "OR",
            "OS",
            "PA",
            "PI",
            "PL",
            "PS",
            "PT",
            "QU",
            "RM",
            "RN",
            "RO",
            "RU",
            "RW",
            "SA",
            "SC",
            "SD",
            "SE",
            "SG",
            "SI",
            "SK",
            "SL",
            "SM",
            "SN",
            "SO",
            "SQ",
            "SR",
            "SS",
            "ST",
            "SU",
            "SV",
            "SW",
            "TA",
            "TE",
            "TG",
            "TH",
            "TI",
            "TK",
            "TL",
            "TN",
            "TO",
            "TR",
            "TS",
            "TT",
            "TW",
            "TY",
            "UG",
            "UK",
            "UR",
            "UZ",
            "VE",
            "VI",
            "VO",
            "WA",
            "WO",
            "XH",
            "YI",
            "YO",
            "ZA",
            "ZH",
            "ZU"
          ],
          "x-go-custom-tag": "gorm:\"default:DE\""
        },
        "Name": {
          "type": "string"
        },
        "ParentCustomerId": {
          "type": "string"
        },
        "PlanId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:'DEFAULT'\""
        },
        "Products": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Product"
          },
          "x-go-custom-tag": "gorm:\"-\""
        },
        "ResellerId": {
          "type": "string"
        }
      }
    },
    "ErrorResponse": {
      "type": "object",
      "required": [
        "errorString"
      ],
      "properties": {
        "errorString": {
          "type": "string"
        }
      }
    },
    "ItemCreatedResponse": {
      "properties": {
        "ApiLink": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        }
      }
    },
    "Product": {
      "type": "object",
      "properties": {
        "ApiLink": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"-\""
        },
        "CancelDate": {
          "type": "string",
          "format": "date",
          "default": "2100-12-31",
          "x-go-custom-tag": "gorm:\"type:date;default:2100-12-31\""
        },
        "CustomerId": {
          "type": "string"
        },
        "DeletedAt": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"type:timestamptz\"",
          "x-nullable": true
        },
        "Discount": {
          "type": "number",
          "format": "double",
          "default": 0,
          "x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
        },
        "Name": {
          "type": "string"
        },
        "PlanId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:'DEFAULT'\""
        },
        "ProductId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid\""
        },
        "Type": {
          "type": "string"
        }
      }
    },
    "Reseller": {
      "type": "object",
      "properties": {
        "AbacusCode": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "Address": {
          "type": "string"
        },
        "ApiLink": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"-\""
        },
        "BillContact": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "BillCurrency": {
          "description": "ISO-4217 currency code",
          "type": "string",
          "default": "CHF",
          "enum": [
            "AED",
            "AFN",
            "ALL",
            "AMD",
            "ANG",
            "AOA",
            "ARS",
            "AUD",
            "AWG",
            "AZN",
            "BAM",
            "BBD",
            "BDT",
            "BGN",
            "BHD",
            "BIF",
            "BMD",
            "BND",
            "BOB",
            "BOV",
            "BRL",
            "BSD",
            "BTN",
            "BWP",
            "BYN",
            "BZD",
            "CAD",
            "CDF",
            "CHE",
            "CHF",
            "CHW",
            "CLF",
            "CLP",
            "CNY",
            "COP",
            "COU",
            "CRC",
            "CUC",
            "CUP",
            "CVE",
            "CZK",
            "DJF",
            "DKK",
            "DOP",
            "DZD",
            "EGP",
            "ERN",
            "ETB",
            "EUR",
            "FJD",
            "FKP",
            "GBP",
            "GEL",
            "GHS",
            "GIP",
            "GMD",
            "GNF",
            "GTQ",
            "GYD",
            "HKD",
            "HNL",
            "HRK",
            "HTG",
            "HUF",
            "IDR",
            "ILS",
            "INR",
            "IQD",
            "IRR",
            "ISK",
            "JMD",
            "JOD",
            "JPY",
            "KES",
            "KGS",
            "KHR",
            "KMF",
            "KPW",
            "KRW",
            "KWD",
            "KYD",
            "KZT",
            "LAK",
            "LBP",
            "LKR",
            "LRD",
            "LSL",
            "LYD",
            "MAD",
            "MDL",
            "MGA",
            "MKD",
            "MMK",
            "MNT",
            "MOP",
            "MRU",
            "MUR",
            "MVR",
            "MWK",
            "MXN",
            "MXV",
            "MYR",
            "MZN",
            "NAD",
            "NGN",
            "NIO",
            "NOK",
            "NPR",
            "NZD",
            "OMR",
            "PAB",
            "PEN",
            "PGK",
            "PHP",
            "PKR",
            "PLN",
            "PYG",
            "QAR",
            "RON",
            "RSD",
            "RUB",
            "RWF",
            "SAR",
            "SBD",
            "SCR",
            "SDG",
            "SEK",
            "SGD",
            "SHP",
            "SLL",
            "SOS",
            "SRD",
            "SSP",
            "STN",
            "SVC",
            "SYP",
            "SZL",
            "THB",
            "TJS",
            "TMT",
            "TND",
            "TOP",
            "TRY",
            "TTD",
            "TWD",
            "TZS",
            "UAH",
            "UGX",
            "USD",
            "USN",
            "UYI",
            "UYU",
            "UYW",
            "UZS",
            "VES",
            "VND",
            "VUV",
            "WST",
            "XAF",
            "XAG",
            "XAU",
            "XBA",
            "XBB",
            "XBC",
            "XBD",
            "XCD",
            "XDR",
            "XOF",
            "XPD",
            "XPF",
            "XPT",
            "XSU",
            "XTS",
            "XUA",
            "XXX",
            "YER",
            "ZAR",
            "ZMW",
            "ZWL"
          ],
          "x-go-custom-tag": "gorm:\"default:CHF\""
        },
        "BillPeriod": {
          "type": "string",
          "default": "monthly",
          "enum": [
            "daily",
            "weekly",
            "bi-weekly",
            "monthly",
            "bi-monthly",
            "quarterly",
            "semi-annually",
            "annually"
          ],
          "x-go-custom-tag": "gorm:\"default:monthly\""
        },
        "Billable": {
          "type": "boolean",
          "default": true,
          "x-go-custom-tag": "gorm:\"default:true\""
        },
        "BillingCode": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "CancelDate": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2100-12-31\""
        },
        "ContractEnd": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2030-12-31\""
        },
        "ContractStart": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2019-01-01\""
        },
        "Customers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Customer"
          },
          "x-go-custom-tag": "gorm:\"-\""
        },
        "DeletedAt": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"type:timestamptz\"",
          "x-nullable": true
        },
        "Discount": {
          "type": "number",
          "format": "double",
          "default": 0,
          "x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
        },
        "EmailBcc": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "EmailCc": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "EmailTo": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "InvoiceMode": {
          "type": "string",
          "default": "email",
          "enum": [
            "email",
            "post"
          ],
          "x-go-custom-tag": "gorm:\"default:email\""
        },
        "IsActive": {
          "type": "boolean",
          "default": true,
          "x-go-custom-tag": "gorm:\"default:true\""
        },
        "Language": {
          "description": "ISO-369-1 alpha-2 language codes",
          "type": "string",
          "default": "DE",
          "enum": [
            "AA",
            "AB",
            "AE",
            "AF",
            "AK",
            "AM",
            "AN",
            "AR",
            "AS",
            "AV",
            "AY",
            "AZ",
            "BA",
            "BE",
            "BG",
            "BH",
            "BI",
            "BM",
            "BN",
            "BO",
            "BR",
            "BS",
            "CA",
            "CE",
            "CH",
            "CO",
            "CR",
            "CS",
            "CU",
            "CV",
            "CY",
            "DA",
            "DE",
            "DV",
            "DZ",
            "EE",
            "EL",
            "EN",
            "EO",
            "ES",
            "ET",
            "EU",
            "FA",
            "FF",
            "FI",
            "FJ",
            "FO",
            "FR",
            "FY",
            "GA",
            "GD",
            "GL",
            "GN",
            "GU",
            "GV",
            "HA",
            "HE",
            "HI",
            "HO",
            "HR",
            "HT",
            "HU",
            "HY",
            "HZ",
            "IA",
            "ID",
            "IE",
            "IG",
            "II",
            "IK",
            "IO",
            "IS",
            "IT",
            "IU",
            "JA",
            "JV",
            "KA",
            "KG",
            "KI",
            "KJ",
            "KK",
            "KL",
            "KM",
            "KN",
            "KO",
            "KR",
            "KS",
            "KU",
            "KV",
            "KW",
            "KY",
            "LA",
            "LB",
            "LG",
            "LI",
            "LN",
            "LO",
            "LT",
            "LU",
            "LV",
            "MG",
            "MH",
            "MI",
            "MK",
            "ML",
            "MN",
            "MR",
            "MS",
            "MT",
            "MY",
            "NA",
            "NB",
            "ND",
            "NE",
            "NG",
            "NL",
            "NN",
            "NO",
            "NR",
            "NV",
            "NY",
            "OC",
            "OJ",
            "OM",
            "OR",
            "OS",
            "PA",
            "PI",
            "PL",
            "PS",
            "PT",
            "QU",
            "RM",
            "RN",
            "RO",
            "RU",
            "RW",
            "SA",
            "SC",
            "SD",
            "SE",
            "SG",
            "SI",
            "SK",
            "SL",
            "SM",
            "SN",
            "SO",
            "SQ",
            "SR",
            "SS",
            "ST",
            "SU",
            "SV",
            "SW",
            "TA",
            "TE",
            "TG",
            "TH",
            "TI",
            "TK",
            "TL",
            "TN",
            "TO",
            "TR",
            "TS",
            "TT",
            "TW",
            "TY",
            "UG",
            "UK",
            "UR",
            "UZ",
            "VE",
            "VI",
            "VO",
            "WA",
            "WO",
            "XH",
            "YI",
            "YO",
            "ZA",
            "ZH",
            "ZU"
          ],
          "x-go-custom-tag": "gorm:\"default:DE\""
        },
        "Name": {
          "type": "string"
        },
        "ParentResellerId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "PlanId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:'DEFAULT'\""
        },
        "ResellerId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid\""
        }
      }
    },
    "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 management of Resellers",
      "name": "resellerManagement"
    },
    {
      "description": "Actions relating to the management of Customers",
      "name": "customerManagement"
    },
    {
      "description": "Actions relating to the management of Products",
      "name": "productManagement"
    }
  ]
}`))
	FlatSwaggerJSON = json.RawMessage([]byte(`{
  "schemes": [
    "http",
    "https"
  ],
  "swagger": "2.0",
  "info": {
    "description": "An API which supports creation, deletion, listing etc of customers and products",
    "title": "Customer Database 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": {
    "/customer": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerManagement"
        ],
        "summary": "List all the customers in the system",
        "operationId": "listCustomers",
        "responses": {
          "200": {
            "description": "List of customers in the system returned",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Customer"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerManagement"
        ],
        "summary": "Insert a new customer in the system.",
        "operationId": "addCustomer",
        "parameters": [
          {
            "description": "Customer to be added",
            "name": "customer",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Customer"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New customer was added successfully",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "202": {
            "description": "The new customer was added but there might have been some fails when adding part of the data",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "400": {
            "description": "Invalid input, object invalid"
          },
          "409": {
            "description": "The given item already exists",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/customer/{id}": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerManagement"
        ],
        "summary": "Return the information about the customer with the given id",
        "operationId": "getCustomer",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the customer to be retrieved",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Customer with the id given in the system returned",
            "schema": {
              "$ref": "#/definitions/Customer"
            }
          },
          "404": {
            "description": "The customer with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerManagement"
        ],
        "summary": "Updates the information of the customer with the given id",
        "operationId": "updateCustomer",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the customer to be updated",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Customer to be updated",
            "name": "customer",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Customer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Customer with the given id was updated",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "202": {
            "description": "The customer was updated but there might have been some fails when adding part of the data",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "404": {
            "description": "The customer with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/product": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "productManagement"
        ],
        "summary": "List all the products in the system",
        "operationId": "listProducts",
        "responses": {
          "200": {
            "description": "List of products in the system returned",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Product"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "productManagement"
        ],
        "summary": "Insert a new product in the system.",
        "operationId": "addProduct",
        "parameters": [
          {
            "description": "Product to be added",
            "name": "product",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Product"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New product was added successfully",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "400": {
            "description": "Invalid input, object invalid"
          },
          "409": {
            "description": "The given item already exists",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/product/{id}": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "productManagement"
        ],
        "summary": "Return the information about the product with the given id",
        "operationId": "getProduct",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the product to be retrieved",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Product with the id given in the system returned",
            "schema": {
              "$ref": "#/definitions/Product"
            }
          },
          "404": {
            "description": "The product with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "productManagement"
        ],
        "summary": "Updates the information of the product with the given id",
        "operationId": "updateProduct",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the product to be updated",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Product to be updated",
            "name": "product",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Product"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product with the given id was updated",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "404": {
            "description": "The product with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/reseller": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "resellerManagement"
        ],
        "summary": "List all the resellers in the system",
        "operationId": "listResellers",
        "responses": {
          "200": {
            "description": "List of resellers in the system returned",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Reseller"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "resellerManagement"
        ],
        "summary": "Insert a new reseller in the system.",
        "operationId": "addReseller",
        "parameters": [
          {
            "description": "Reseller to be added",
            "name": "reseller",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Reseller"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New reseller was added successfully",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "202": {
            "description": "The new reseller was added but there might have been some fails when adding part of the data",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "400": {
            "description": "Invalid input, object invalid"
          },
          "409": {
            "description": "The given item already exists",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/reseller/{id}": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "resellerManagement"
        ],
        "summary": "Return the information about the reseller with the given id",
        "operationId": "getReseller",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the reseller to be retrieved",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Reseller with the id given in the system returned",
            "schema": {
              "$ref": "#/definitions/Reseller"
            }
          },
          "404": {
            "description": "The reseller with the given id wasn't found",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "Keycloak": [
              "admin"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "resellerManagement"
        ],
        "summary": "Updates the information of the reseller with the given id",
        "operationId": "updateReseller",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the reseller to be updated",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Reseller to be updated",
            "name": "reseller",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Reseller"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Reseller with the given id was updated",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "202": {
            "description": "The reseller was updated but there might have been some fails when adding part of the data",
            "schema": {
              "$ref": "#/definitions/ItemCreatedResponse"
            }
          },
          "404": {
            "description": "The reseller with the given id wasn't found",
            "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",
              "customer",
              "product",
              "reseller"
            ],
            "type": "string",
            "description": "Id of the product to be retrieved",
            "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"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Customer": {
      "type": "object",
      "properties": {
        "AbacusCode": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "Address": {
          "type": "string"
        },
        "ApiLink": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"-\""
        },
        "BillContact": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "BillCurrency": {
          "description": "ISO-4217 currency code",
          "type": "string",
          "default": "CHF",
          "enum": [
            "AED",
            "AFN",
            "ALL",
            "AMD",
            "ANG",
            "AOA",
            "ARS",
            "AUD",
            "AWG",
            "AZN",
            "BAM",
            "BBD",
            "BDT",
            "BGN",
            "BHD",
            "BIF",
            "BMD",
            "BND",
            "BOB",
            "BOV",
            "BRL",
            "BSD",
            "BTN",
            "BWP",
            "BYN",
            "BZD",
            "CAD",
            "CDF",
            "CHE",
            "CHF",
            "CHW",
            "CLF",
            "CLP",
            "CNY",
            "COP",
            "COU",
            "CRC",
            "CUC",
            "CUP",
            "CVE",
            "CZK",
            "DJF",
            "DKK",
            "DOP",
            "DZD",
            "EGP",
            "ERN",
            "ETB",
            "EUR",
            "FJD",
            "FKP",
            "GBP",
            "GEL",
            "GHS",
            "GIP",
            "GMD",
            "GNF",
            "GTQ",
            "GYD",
            "HKD",
            "HNL",
            "HRK",
            "HTG",
            "HUF",
            "IDR",
            "ILS",
            "INR",
            "IQD",
            "IRR",
            "ISK",
            "JMD",
            "JOD",
            "JPY",
            "KES",
            "KGS",
            "KHR",
            "KMF",
            "KPW",
            "KRW",
            "KWD",
            "KYD",
            "KZT",
            "LAK",
            "LBP",
            "LKR",
            "LRD",
            "LSL",
            "LYD",
            "MAD",
            "MDL",
            "MGA",
            "MKD",
            "MMK",
            "MNT",
            "MOP",
            "MRU",
            "MUR",
            "MVR",
            "MWK",
            "MXN",
            "MXV",
            "MYR",
            "MZN",
            "NAD",
            "NGN",
            "NIO",
            "NOK",
            "NPR",
            "NZD",
            "OMR",
            "PAB",
            "PEN",
            "PGK",
            "PHP",
            "PKR",
            "PLN",
            "PYG",
            "QAR",
            "RON",
            "RSD",
            "RUB",
            "RWF",
            "SAR",
            "SBD",
            "SCR",
            "SDG",
            "SEK",
            "SGD",
            "SHP",
            "SLL",
            "SOS",
            "SRD",
            "SSP",
            "STN",
            "SVC",
            "SYP",
            "SZL",
            "THB",
            "TJS",
            "TMT",
            "TND",
            "TOP",
            "TRY",
            "TTD",
            "TWD",
            "TZS",
            "UAH",
            "UGX",
            "USD",
            "USN",
            "UYI",
            "UYU",
            "UYW",
            "UZS",
            "VES",
            "VND",
            "VUV",
            "WST",
            "XAF",
            "XAG",
            "XAU",
            "XBA",
            "XBB",
            "XBC",
            "XBD",
            "XCD",
            "XDR",
            "XOF",
            "XPD",
            "XPF",
            "XPT",
            "XSU",
            "XTS",
            "XUA",
            "XXX",
            "YER",
            "ZAR",
            "ZMW",
            "ZWL"
          ],
          "x-go-custom-tag": "gorm:\"default:CHF\""
        },
        "BillPeriod": {
          "type": "string",
          "default": "monthly",
          "enum": [
            "daily",
            "weekly",
            "bi-weekly",
            "monthly",
            "bi-monthly",
            "quarterly",
            "semi-annually",
            "annually"
          ],
          "x-go-custom-tag": "gorm:\"default:monthly\""
        },
        "Billable": {
          "type": "boolean",
          "default": true,
          "x-go-custom-tag": "gorm:\"default:true\""
        },
        "BillingCode": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "CancelDate": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2100-12-31\""
        },
        "ContractEnd": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2030-12-31\""
        },
        "ContractStart": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2019-01-01\""
        },
        "CustomerId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid\""
        },
        "DeletedAt": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"type:timestamptz\"",
          "x-nullable": true
        },
        "Discount": {
          "type": "number",
          "format": "double",
          "default": 0,
          "x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
        },
        "EmailBcc": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "EmailCc": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "EmailTo": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "InvoiceMode": {
          "type": "string",
          "default": "email",
          "enum": [
            "email",
            "post"
          ],
          "x-go-custom-tag": "gorm:\"default:email\""
        },
        "IsActive": {
          "type": "boolean",
          "default": true,
          "x-go-custom-tag": "gorm:\"default:true\""
        },
        "Language": {
          "description": "ISO-369-1 alpha-2 language codes",
          "type": "string",
          "default": "DE",
          "enum": [
            "AA",
            "AB",
            "AE",
            "AF",
            "AK",
            "AM",
            "AN",
            "AR",
            "AS",
            "AV",
            "AY",
            "AZ",
            "BA",
            "BE",
            "BG",
            "BH",
            "BI",
            "BM",
            "BN",
            "BO",
            "BR",
            "BS",
            "CA",
            "CE",
            "CH",
            "CO",
            "CR",
            "CS",
            "CU",
            "CV",
            "CY",
            "DA",
            "DE",
            "DV",
            "DZ",
            "EE",
            "EL",
            "EN",
            "EO",
            "ES",
            "ET",
            "EU",
            "FA",
            "FF",
            "FI",
            "FJ",
            "FO",
            "FR",
            "FY",
            "GA",
            "GD",
            "GL",
            "GN",
            "GU",
            "GV",
            "HA",
            "HE",
            "HI",
            "HO",
            "HR",
            "HT",
            "HU",
            "HY",
            "HZ",
            "IA",
            "ID",
            "IE",
            "IG",
            "II",
            "IK",
            "IO",
            "IS",
            "IT",
            "IU",
            "JA",
            "JV",
            "KA",
            "KG",
            "KI",
            "KJ",
            "KK",
            "KL",
            "KM",
            "KN",
            "KO",
            "KR",
            "KS",
            "KU",
            "KV",
            "KW",
            "KY",
            "LA",
            "LB",
            "LG",
            "LI",
            "LN",
            "LO",
            "LT",
            "LU",
            "LV",
            "MG",
            "MH",
            "MI",
            "MK",
            "ML",
            "MN",
            "MR",
            "MS",
            "MT",
            "MY",
            "NA",
            "NB",
            "ND",
            "NE",
            "NG",
            "NL",
            "NN",
            "NO",
            "NR",
            "NV",
            "NY",
            "OC",
            "OJ",
            "OM",
            "OR",
            "OS",
            "PA",
            "PI",
            "PL",
            "PS",
            "PT",
            "QU",
            "RM",
            "RN",
            "RO",
            "RU",
            "RW",
            "SA",
            "SC",
            "SD",
            "SE",
            "SG",
            "SI",
            "SK",
            "SL",
            "SM",
            "SN",
            "SO",
            "SQ",
            "SR",
            "SS",
            "ST",
            "SU",
            "SV",
            "SW",
            "TA",
            "TE",
            "TG",
            "TH",
            "TI",
            "TK",
            "TL",
            "TN",
            "TO",
            "TR",
            "TS",
            "TT",
            "TW",
            "TY",
            "UG",
            "UK",
            "UR",
            "UZ",
            "VE",
            "VI",
            "VO",
            "WA",
            "WO",
            "XH",
            "YI",
            "YO",
            "ZA",
            "ZH",
            "ZU"
          ],
          "x-go-custom-tag": "gorm:\"default:DE\""
        },
        "Name": {
          "type": "string"
        },
        "ParentCustomerId": {
          "type": "string"
        },
        "PlanId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:'DEFAULT'\""
        },
        "Products": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Product"
          },
          "x-go-custom-tag": "gorm:\"-\""
        },
        "ResellerId": {
          "type": "string"
        }
      }
    },
    "ErrorResponse": {
      "type": "object",
      "required": [
        "errorString"
      ],
      "properties": {
        "errorString": {
          "type": "string"
        }
      }
    },
    "ItemCreatedResponse": {
      "properties": {
        "ApiLink": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        }
      }
    },
    "Product": {
      "type": "object",
      "properties": {
        "ApiLink": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"-\""
        },
        "CancelDate": {
          "type": "string",
          "format": "date",
          "default": "2100-12-31",
          "x-go-custom-tag": "gorm:\"type:date;default:2100-12-31\""
        },
        "CustomerId": {
          "type": "string"
        },
        "DeletedAt": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"type:timestamptz\"",
          "x-nullable": true
        },
        "Discount": {
          "type": "number",
          "format": "double",
          "default": 0,
          "x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
        },
        "Name": {
          "type": "string"
        },
        "PlanId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:'DEFAULT'\""
        },
        "ProductId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid\""
        },
        "Type": {
          "type": "string"
        }
      }
    },
    "Reseller": {
      "type": "object",
      "properties": {
        "AbacusCode": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "Address": {
          "type": "string"
        },
        "ApiLink": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"-\""
        },
        "BillContact": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "BillCurrency": {
          "description": "ISO-4217 currency code",
          "type": "string",
          "default": "CHF",
          "enum": [
            "AED",
            "AFN",
            "ALL",
            "AMD",
            "ANG",
            "AOA",
            "ARS",
            "AUD",
            "AWG",
            "AZN",
            "BAM",
            "BBD",
            "BDT",
            "BGN",
            "BHD",
            "BIF",
            "BMD",
            "BND",
            "BOB",
            "BOV",
            "BRL",
            "BSD",
            "BTN",
            "BWP",
            "BYN",
            "BZD",
            "CAD",
            "CDF",
            "CHE",
            "CHF",
            "CHW",
            "CLF",
            "CLP",
            "CNY",
            "COP",
            "COU",
            "CRC",
            "CUC",
            "CUP",
            "CVE",
            "CZK",
            "DJF",
            "DKK",
            "DOP",
            "DZD",
            "EGP",
            "ERN",
            "ETB",
            "EUR",
            "FJD",
            "FKP",
            "GBP",
            "GEL",
            "GHS",
            "GIP",
            "GMD",
            "GNF",
            "GTQ",
            "GYD",
            "HKD",
            "HNL",
            "HRK",
            "HTG",
            "HUF",
            "IDR",
            "ILS",
            "INR",
            "IQD",
            "IRR",
            "ISK",
            "JMD",
            "JOD",
            "JPY",
            "KES",
            "KGS",
            "KHR",
            "KMF",
            "KPW",
            "KRW",
            "KWD",
            "KYD",
            "KZT",
            "LAK",
            "LBP",
            "LKR",
            "LRD",
            "LSL",
            "LYD",
            "MAD",
            "MDL",
            "MGA",
            "MKD",
            "MMK",
            "MNT",
            "MOP",
            "MRU",
            "MUR",
            "MVR",
            "MWK",
            "MXN",
            "MXV",
            "MYR",
            "MZN",
            "NAD",
            "NGN",
            "NIO",
            "NOK",
            "NPR",
            "NZD",
            "OMR",
            "PAB",
            "PEN",
            "PGK",
            "PHP",
            "PKR",
            "PLN",
            "PYG",
            "QAR",
            "RON",
            "RSD",
            "RUB",
            "RWF",
            "SAR",
            "SBD",
            "SCR",
            "SDG",
            "SEK",
            "SGD",
            "SHP",
            "SLL",
            "SOS",
            "SRD",
            "SSP",
            "STN",
            "SVC",
            "SYP",
            "SZL",
            "THB",
            "TJS",
            "TMT",
            "TND",
            "TOP",
            "TRY",
            "TTD",
            "TWD",
            "TZS",
            "UAH",
            "UGX",
            "USD",
            "USN",
            "UYI",
            "UYU",
            "UYW",
            "UZS",
            "VES",
            "VND",
            "VUV",
            "WST",
            "XAF",
            "XAG",
            "XAU",
            "XBA",
            "XBB",
            "XBC",
            "XBD",
            "XCD",
            "XDR",
            "XOF",
            "XPD",
            "XPF",
            "XPT",
            "XSU",
            "XTS",
            "XUA",
            "XXX",
            "YER",
            "ZAR",
            "ZMW",
            "ZWL"
          ],
          "x-go-custom-tag": "gorm:\"default:CHF\""
        },
        "BillPeriod": {
          "type": "string",
          "default": "monthly",
          "enum": [
            "daily",
            "weekly",
            "bi-weekly",
            "monthly",
            "bi-monthly",
            "quarterly",
            "semi-annually",
            "annually"
          ],
          "x-go-custom-tag": "gorm:\"default:monthly\""
        },
        "Billable": {
          "type": "boolean",
          "default": true,
          "x-go-custom-tag": "gorm:\"default:true\""
        },
        "BillingCode": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "CancelDate": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2100-12-31\""
        },
        "ContractEnd": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2030-12-31\""
        },
        "ContractStart": {
          "type": "string",
          "format": "date",
          "x-go-custom-tag": "gorm:\"type:date;default:2019-01-01\""
        },
        "Customers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Customer"
          },
          "x-go-custom-tag": "gorm:\"-\""
        },
        "DeletedAt": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"type:timestamptz\"",
          "x-nullable": true
        },
        "Discount": {
          "type": "number",
          "format": "double",
          "default": 0,
          "x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
        },
        "EmailBcc": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "EmailCc": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "EmailTo": {
          "type": "string",
          "format": "email",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "InvoiceMode": {
          "type": "string",
          "default": "email",
          "enum": [
            "email",
            "post"
          ],
          "x-go-custom-tag": "gorm:\"default:email\""
        },
        "IsActive": {
          "type": "boolean",
          "default": true,
          "x-go-custom-tag": "gorm:\"default:true\""
        },
        "Language": {
          "description": "ISO-369-1 alpha-2 language codes",
          "type": "string",
          "default": "DE",
          "enum": [
            "AA",
            "AB",
            "AE",
            "AF",
            "AK",
            "AM",
            "AN",
            "AR",
            "AS",
            "AV",
            "AY",
            "AZ",
            "BA",
            "BE",
            "BG",
            "BH",
            "BI",
            "BM",
            "BN",
            "BO",
            "BR",
            "BS",
            "CA",
            "CE",
            "CH",
            "CO",
            "CR",
            "CS",
            "CU",
            "CV",
            "CY",
            "DA",
            "DE",
            "DV",
            "DZ",
            "EE",
            "EL",
            "EN",
            "EO",
            "ES",
            "ET",
            "EU",
            "FA",
            "FF",
            "FI",
            "FJ",
            "FO",
            "FR",
            "FY",
            "GA",
            "GD",
            "GL",
            "GN",
            "GU",
            "GV",
            "HA",
            "HE",
            "HI",
            "HO",
            "HR",
            "HT",
            "HU",
            "HY",
            "HZ",
            "IA",
            "ID",
            "IE",
            "IG",
            "II",
            "IK",
            "IO",
            "IS",
            "IT",
            "IU",
            "JA",
            "JV",
            "KA",
            "KG",
            "KI",
            "KJ",
            "KK",
            "KL",
            "KM",
            "KN",
            "KO",
            "KR",
            "KS",
            "KU",
            "KV",
            "KW",
            "KY",
            "LA",
            "LB",
            "LG",
            "LI",
            "LN",
            "LO",
            "LT",
            "LU",
            "LV",
            "MG",
            "MH",
            "MI",
            "MK",
            "ML",
            "MN",
            "MR",
            "MS",
            "MT",
            "MY",
            "NA",
            "NB",
            "ND",
            "NE",
            "NG",
            "NL",
            "NN",
            "NO",
            "NR",
            "NV",
            "NY",
            "OC",
            "OJ",
            "OM",
            "OR",
            "OS",
            "PA",
            "PI",
            "PL",
            "PS",
            "PT",
            "QU",
            "RM",
            "RN",
            "RO",
            "RU",
            "RW",
            "SA",
            "SC",
            "SD",
            "SE",
            "SG",
            "SI",
            "SK",
            "SL",
            "SM",
            "SN",
            "SO",
            "SQ",
            "SR",
            "SS",
            "ST",
            "SU",
            "SV",
            "SW",
            "TA",
            "TE",
            "TG",
            "TH",
            "TI",
            "TK",
            "TL",
            "TN",
            "TO",
            "TR",
            "TS",
            "TT",
            "TW",
            "TY",
            "UG",
            "UK",
            "UR",
            "UZ",
            "VE",
            "VI",
            "VO",
            "WA",
            "WO",
            "XH",
            "YI",
            "YO",
            "ZA",
            "ZH",
            "ZU"
          ],
          "x-go-custom-tag": "gorm:\"default:DE\""
        },
        "Name": {
          "type": "string"
        },
        "ParentResellerId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:''\""
        },
        "PlanId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"default:'DEFAULT'\""
        },
        "ResellerId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid\""
        }
      }
    },
    "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 management of Resellers",
      "name": "resellerManagement"
    },
    {
      "description": "Actions relating to the management of Customers",
      "name": "customerManagement"
    },
    {
      "description": "Actions relating to the management of Products",
      "name": "productManagement"
    }
  ]
}`))
}
