// 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 UDR",
    "title": "UDR 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": {
    "/metrics": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "metricsManagement"
        ],
        "summary": "List of all metric types processed by the service",
        "operationId": "getMetrics",
        "responses": {
          "200": {
            "description": "Description of a successfully operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Metric"
              }
            }
          },
          "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",
              "metrics",
              "usage"
            ],
            "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/compact": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "triggerManagement"
        ],
        "summary": "Compactation task trigger",
        "operationId": "execCompactation",
        "parameters": [
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime from which to get the usage report",
            "name": "from",
            "in": "query"
          },
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime until which to get the usage report",
            "name": "to",
            "in": "query"
          },
          {
            "type": "boolean",
            "description": "Switch for using 15m boundaries instead of 8h",
            "name": "fast_mode",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Compactation task executed successfully."
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/usage": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "usageManagement"
        ],
        "summary": "Detailed report covering all accounts within the specified time window",
        "operationId": "getSystemUsage",
        "parameters": [
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime from which to get the usage report",
            "name": "from",
            "in": "query"
          },
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime until which to get the usage report",
            "name": "to",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Metric(s) to get the usage report",
            "name": "metric",
            "in": "query"
          },
          {
            "type": "string",
            "description": "List of ids to be queried",
            "name": "idlist",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Description of a successfully operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UReport"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/usage/{id}": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "usageManagement"
        ],
        "summary": "Detailed report covering of the account associated with the id within the specified time window",
        "operationId": "getUsage",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the account to be checked",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime from which to get the usage report",
            "name": "from",
            "in": "query"
          },
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime until which to get the usage report",
            "name": "to",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Metric(s) to get the usage report",
            "name": "metric",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Description of a successfully operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UReport"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "ErrorResponse": {
      "type": "object",
      "required": [
        "errorString"
      ],
      "properties": {
        "errorString": {
          "type": "string"
        }
      }
    },
    "Metadata": {
      "type": "object",
      "x-go-type": {
        "import": {
          "package": "gitlab.com/cyclops-utilities/datamodels"
        },
        "type": "JSONdb"
      }
    },
    "Metric": {
      "type": "object",
      "properties": {
        "Metric": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"primary_key\""
        }
      }
    },
    "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"
        }
      }
    },
    "UDRRecord": {
      "type": "object",
      "properties": {
        "AccountId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"index\""
        },
        "Metadata": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        },
        "ResourceId": {
          "type": "string"
        },
        "ResourceName": {
          "type": "string"
        },
        "ResourceType": {
          "type": "string"
        },
        "TimeFrom": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "TimeTo": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "Unit": {
          "type": "string"
        },
        "UsageBreakup": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        }
      }
    },
    "UDRReport": {
      "type": "object",
      "properties": {
        "Metadata": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        },
        "ResourceId": {
          "type": "string"
        },
        "ResourceName": {
          "type": "string"
        },
        "ResourceType": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        },
        "UsageBreakup": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        }
      }
    },
    "UReport": {
      "type": "object",
      "properties": {
        "AccountId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"index\""
        },
        "TimeFrom": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "TimeTo": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "Usage": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UDRReport"
          },
          "x-go-custom-tag": "gorm:\"-\""
        }
      }
    },
    "Usage": {
      "type": "object",
      "properties": {
        "Account": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"index\""
        },
        "Metadata": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        },
        "ResourceID": {
          "type": "string"
        },
        "ResourceName": {
          "type": "string"
        },
        "ResourceType": {
          "type": "string"
        },
        "Time": {
          "type": "integer"
        },
        "Timedate": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "Unit": {
          "type": "string"
        },
        "Usage": {
          "type": "number",
          "format": "double",
          "default": 0,
          "x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
        }
      }
    }
  },
  "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 metrics used and controlled by the system",
      "name": "metricsManagement"
    },
    {
      "description": "Actions relating to the usage reporting of the accounts of the system",
      "name": "usageManagement"
    }
  ]
}`))
	FlatSwaggerJSON = json.RawMessage([]byte(`{
  "schemes": [
    "http",
    "https"
  ],
  "swagger": "2.0",
  "info": {
    "description": "An API which supports creation, deletion, listing etc of UDR",
    "title": "UDR 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": {
    "/metrics": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "metricsManagement"
        ],
        "summary": "List of all metric types processed by the service",
        "operationId": "getMetrics",
        "responses": {
          "200": {
            "description": "Description of a successfully operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Metric"
              }
            }
          },
          "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",
              "metrics",
              "usage"
            ],
            "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/compact": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "triggerManagement"
        ],
        "summary": "Compactation task trigger",
        "operationId": "execCompactation",
        "parameters": [
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime from which to get the usage report",
            "name": "from",
            "in": "query"
          },
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime until which to get the usage report",
            "name": "to",
            "in": "query"
          },
          {
            "type": "boolean",
            "description": "Switch for using 15m boundaries instead of 8h",
            "name": "fast_mode",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Compactation task executed successfully."
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/usage": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "usageManagement"
        ],
        "summary": "Detailed report covering all accounts within the specified time window",
        "operationId": "getSystemUsage",
        "parameters": [
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime from which to get the usage report",
            "name": "from",
            "in": "query"
          },
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime until which to get the usage report",
            "name": "to",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Metric(s) to get the usage report",
            "name": "metric",
            "in": "query"
          },
          {
            "type": "string",
            "description": "List of ids to be queried",
            "name": "idlist",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Description of a successfully operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UReport"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/usage/{id}": {
      "get": {
        "security": [
          {
            "Keycloak": [
              "user"
            ]
          },
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyParam": []
          }
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "usageManagement"
        ],
        "summary": "Detailed report covering of the account associated with the id within the specified time window",
        "operationId": "getUsage",
        "parameters": [
          {
            "type": "string",
            "description": "Id of the account to be checked",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime from which to get the usage report",
            "name": "from",
            "in": "query"
          },
          {
            "type": "string",
            "format": "datetime",
            "description": "Datetime until which to get the usage report",
            "name": "to",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Metric(s) to get the usage report",
            "name": "metric",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Description of a successfully operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UReport"
              }
            }
          },
          "500": {
            "description": "Something unexpected happend, error raised",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "ErrorResponse": {
      "type": "object",
      "required": [
        "errorString"
      ],
      "properties": {
        "errorString": {
          "type": "string"
        }
      }
    },
    "Metadata": {
      "type": "object",
      "x-go-type": {
        "import": {
          "package": "gitlab.com/cyclops-utilities/datamodels"
        },
        "type": "JSONdb"
      }
    },
    "Metric": {
      "type": "object",
      "properties": {
        "Metric": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"primary_key\""
        }
      }
    },
    "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"
        }
      }
    },
    "UDRRecord": {
      "type": "object",
      "properties": {
        "AccountId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"index\""
        },
        "Metadata": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        },
        "ResourceId": {
          "type": "string"
        },
        "ResourceName": {
          "type": "string"
        },
        "ResourceType": {
          "type": "string"
        },
        "TimeFrom": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "TimeTo": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "Unit": {
          "type": "string"
        },
        "UsageBreakup": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        }
      }
    },
    "UDRReport": {
      "type": "object",
      "properties": {
        "Metadata": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        },
        "ResourceId": {
          "type": "string"
        },
        "ResourceName": {
          "type": "string"
        },
        "ResourceType": {
          "type": "string"
        },
        "Unit": {
          "type": "string"
        },
        "UsageBreakup": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        }
      }
    },
    "UReport": {
      "type": "object",
      "properties": {
        "AccountId": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"index\""
        },
        "TimeFrom": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "TimeTo": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "Usage": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UDRReport"
          },
          "x-go-custom-tag": "gorm:\"-\""
        }
      }
    },
    "Usage": {
      "type": "object",
      "properties": {
        "Account": {
          "type": "string",
          "x-go-custom-tag": "gorm:\"index\""
        },
        "Metadata": {
          "x-go-custom-tag": "gorm:\"type:jsonb\"",
          "$ref": "#/definitions/Metadata"
        },
        "ResourceID": {
          "type": "string"
        },
        "ResourceName": {
          "type": "string"
        },
        "ResourceType": {
          "type": "string"
        },
        "Time": {
          "type": "integer"
        },
        "Timedate": {
          "type": "string",
          "format": "datetime",
          "x-go-custom-tag": "gorm:\"index;type:timestamptz\""
        },
        "Unit": {
          "type": "string"
        },
        "Usage": {
          "type": "number",
          "format": "double",
          "default": 0,
          "x-go-custom-tag": "gorm:\"type:numeric(23,13);default:0.0\""
        }
      }
    }
  },
  "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 metrics used and controlled by the system",
      "name": "metricsManagement"
    },
    {
      "description": "Actions relating to the usage reporting of the accounts of the system",
      "name": "usageManagement"
    }
  ]
}`))
}
