// Package rest GENERATED BY SWAG; DO NOT EDIT
// This file was generated by swaggo/swag
package rest

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {},
        "license": {
            "name": "á… "
        },
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/city-lite/{addr}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "geo IP"
                ],
                "summary": "city lite",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ip or hostname",
                        "name": "addr",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/entity.CityLite"
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/city/{addr}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "geo IP"
                ],
                "summary": "city",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ip or hostname",
                        "name": "addr",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "description": "include ISP info",
                        "name": "isp",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/entity.City"
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/country/{addr}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "geo IP"
                ],
                "summary": "country",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ip or hostname",
                        "name": "addr",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/entity.Country"
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/dump": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "produces": [
                    "text/csv"
                ],
                "tags": [
                    "geo IP"
                ],
                "summary": "geoip database dump",
                "deprecated": true,
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "503": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/dump/{db}/csv": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "produces": [
                    "text/csv"
                ],
                "tags": [
                    "geo IP"
                ],
                "summary": "maxmind csv database. It's generated from the mmdb file, so the result may differ from those that are officially supplied",
                "parameters": [
                    {
                        "enum": [
                            "city",
                            "isp"
                        ],
                        "type": "string",
                        "description": "db type",
                        "name": "db",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "503": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/dump/{db}/metadata": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "geo IP"
                ],
                "summary": "maxmind database metadata",
                "parameters": [
                    {
                        "enum": [
                            "city",
                            "isp"
                        ],
                        "type": "string",
                        "description": "db type",
                        "name": "db",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/entity.MetaData"
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "503": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/dump/{db}/mmdb": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "geo IP"
                ],
                "summary": "maxmind mmdb database",
                "parameters": [
                    {
                        "enum": [
                            "city",
                            "isp"
                        ],
                        "type": "string",
                        "description": "db type",
                        "name": "db",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "503": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/env": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "produces": [
                    "text/yaml"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get current environment",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/geoname/city": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "geonames"
                ],
                "summary": "city",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "comma separated list of country codes",
                        "name": "country-codes",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "name prefix",
                        "name": "name-prefix",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "description": "comma separated list of GeoNames ids",
                        "name": "geoname-ids",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/entity.GeoName"
                            }
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "503": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/geoname/continent": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "geonames"
                ],
                "summary": "continent",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/entity.geoNameContinentJson"
                            }
                        }
                    }
                }
            }
        },
        "/geoname/country": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "geonames"
                ],
                "summary": "country",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "comma separated list of country codes",
                        "name": "country-codes",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "name prefix",
                        "name": "name-prefix",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "description": "comma separated list of GeoNames ids",
                        "name": "geoname-ids",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/entity.GeoNameCountry"
                            }
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "503": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/geoname/dump": {
            "get": {
                "produces": [
                    "text/csv"
                ],
                "tags": [
                    "geonames"
                ],
                "summary": "geonames csv dump",
                "parameters": [
                    {
                        "type": "string",
                        "description": "format",
                        "name": "format",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "503": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/geoname/subdivision": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "geonames"
                ],
                "summary": "city lite",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "comma separated list of country codes",
                        "name": "country-codes",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "name prefix",
                        "name": "name-prefix",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "description": "comma separated list of GeoNames ids",
                        "name": "geoname-ids",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/entity.GeoNameAdminSubdivision"
                            }
                        }
                    },
                    "400": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "503": {
                        "description": "error",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/ping": {
            "get": {
                "produces": [
                    "text/plain"
                ],
                "tags": [
                    "public"
                ],
                "summary": "ping request",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/version": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "public"
                ],
                "summary": "get service version",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Version"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "Version": {
            "type": "object",
            "properties": {
                "branch": {
                    "type": "string"
                },
                "commit": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "entity.City": {
            "type": "object",
            "properties": {
                "ISP": {
                    "$ref": "#/definitions/entity.ISP"
                },
                "city": {
                    "type": "object",
                    "properties": {
                        "geoNameID": {
                            "type": "integer"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                },
                "continent": {
                    "type": "object",
                    "properties": {
                        "code": {
                            "type": "string"
                        },
                        "geoNameID": {
                            "type": "integer"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                },
                "country": {
                    "type": "object",
                    "properties": {
                        "geoNameID": {
                            "type": "integer"
                        },
                        "isInEuropeanUnion": {
                            "type": "boolean"
                        },
                        "isoCode": {
                            "type": "string"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                },
                "location": {
                    "type": "object",
                    "properties": {
                        "accuracyRadius": {
                            "type": "integer"
                        },
                        "latitude": {
                            "type": "number"
                        },
                        "longitude": {
                            "type": "number"
                        },
                        "metroCode": {
                            "type": "integer"
                        },
                        "timeZone": {
                            "type": "string"
                        }
                    }
                },
                "postal": {
                    "type": "object",
                    "properties": {
                        "code": {
                            "type": "string"
                        }
                    }
                },
                "registeredCountry": {
                    "type": "object",
                    "properties": {
                        "geoNameID": {
                            "type": "integer"
                        },
                        "isInEuropeanUnion": {
                            "type": "boolean"
                        },
                        "isoCode": {
                            "type": "string"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                },
                "representedCountry": {
                    "type": "object",
                    "properties": {
                        "geoNameID": {
                            "type": "integer"
                        },
                        "isInEuropeanUnion": {
                            "type": "boolean"
                        },
                        "isoCode": {
                            "type": "string"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "type": {
                            "type": "string"
                        }
                    }
                },
                "subdivisions": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "geoNameID": {
                                "type": "integer"
                            },
                            "isoCode": {
                                "type": "string"
                            },
                            "names": {
                                "type": "object",
                                "additionalProperties": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "traits": {
                    "type": "object",
                    "properties": {
                        "isAnonymousProxy": {
                            "type": "boolean"
                        },
                        "isSatelliteProvider": {
                            "type": "boolean"
                        }
                    }
                }
            }
        },
        "entity.CityLite": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "object",
                    "properties": {
                        "name": {
                            "type": "string"
                        }
                    }
                },
                "country": {
                    "type": "object",
                    "properties": {
                        "isoCode": {
                            "type": "string"
                        },
                        "name": {
                            "type": "string"
                        }
                    }
                },
                "location": {
                    "$ref": "#/definitions/entity.LocationLite"
                }
            }
        },
        "entity.Country": {
            "type": "object",
            "properties": {
                "continent": {
                    "type": "object",
                    "properties": {
                        "code": {
                            "type": "string"
                        },
                        "geoNameID": {
                            "type": "integer"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                },
                "country": {
                    "type": "object",
                    "properties": {
                        "geoNameID": {
                            "type": "integer"
                        },
                        "isInEuropeanUnion": {
                            "type": "boolean"
                        },
                        "isoCode": {
                            "type": "string"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                },
                "registeredCountry": {
                    "type": "object",
                    "properties": {
                        "geoNameID": {
                            "type": "integer"
                        },
                        "isInEuropeanUnion": {
                            "type": "boolean"
                        },
                        "isoCode": {
                            "type": "string"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                },
                "representedCountry": {
                    "type": "object",
                    "properties": {
                        "geoNameID": {
                            "type": "integer"
                        },
                        "isInEuropeanUnion": {
                            "type": "boolean"
                        },
                        "isoCode": {
                            "type": "string"
                        },
                        "names": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "type": {
                            "type": "string"
                        }
                    }
                },
                "traits": {
                    "type": "object",
                    "properties": {
                        "isAnonymousProxy": {
                            "type": "boolean"
                        },
                        "isSatelliteProvider": {
                            "type": "boolean"
                        }
                    }
                }
            }
        },
        "entity.GeoName": {
            "type": "object",
            "properties": {
                "admin1Code": {
                    "type": "string"
                },
                "admin2Code": {
                    "type": "string"
                },
                "admin3Code": {
                    "type": "string"
                },
                "admin4Code": {
                    "type": "string"
                },
                "alternateCountryCodes": {
                    "type": "string"
                },
                "alternateNames": {
                    "type": "string"
                },
                "asciiName": {
                    "type": "string"
                },
                "class": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "countryCode": {
                    "type": "string"
                },
                "digitalElevationModel": {
                    "type": "integer"
                },
                "elevation": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "latitude": {
                    "type": "number"
                },
                "longitude": {
                    "type": "number"
                },
                "modificationDate": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "population": {
                    "type": "integer"
                },
                "timezone": {
                    "type": "string"
                }
            }
        },
        "entity.GeoNameAdminSubdivision": {
            "type": "object",
            "properties": {
                "asciiName": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "geonameId": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "entity.GeoNameCountry": {
            "type": "object",
            "properties": {
                "area": {
                    "type": "number"
                },
                "capital": {
                    "type": "string"
                },
                "continent": {
                    "type": "string"
                },
                "currencyCode": {
                    "type": "string"
                },
                "currencyName": {
                    "type": "string"
                },
                "equivalentFipsCode": {
                    "type": "string"
                },
                "fips": {
                    "type": "string"
                },
                "geonameID": {
                    "type": "integer"
                },
                "iso2Code": {
                    "type": "string"
                },
                "iso3Code": {
                    "type": "string"
                },
                "isoNumeric": {
                    "type": "string"
                },
                "languages": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "neighbours": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "population": {
                    "type": "integer"
                },
                "postalCodeFormat": {
                    "type": "string"
                },
                "postalCodeRegex": {
                    "type": "string"
                },
                "tld": {
                    "type": "string"
                }
            }
        },
        "entity.ISP": {
            "type": "object",
            "properties": {
                "autonomousSystemNumber": {
                    "type": "integer"
                },
                "autonomousSystemOrganization": {
                    "type": "string"
                },
                "isp": {
                    "type": "string"
                },
                "mobileCountryCode": {
                    "type": "string"
                },
                "mobileNetworkCode": {
                    "type": "string"
                },
                "organization": {
                    "type": "string"
                }
            }
        },
        "entity.LocationLite": {
            "type": "object",
            "properties": {
                "latitude": {
                    "type": "number"
                },
                "longitude": {
                    "type": "number"
                },
                "timeZone": {
                    "type": "string"
                }
            }
        },
        "entity.MetaData": {
            "type": "object",
            "properties": {
                "binaryFormatMajorVersion": {
                    "type": "integer"
                },
                "binaryFormatMinorVersion": {
                    "type": "integer"
                },
                "buildEpoch": {
                    "type": "integer"
                },
                "databaseType": {
                    "type": "string"
                },
                "description": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "ipversion": {
                    "type": "integer"
                },
                "languages": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "nodeCount": {
                    "type": "integer"
                },
                "recordSize": {
                    "type": "integer"
                }
            }
        },
        "entity.geoNameContinentJson": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "geoNameID": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "ApiKeyAuth": {
            "type": "apiKey",
            "name": "GEOS-API-Key",
            "in": "header"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "1.0",
	Host:             "",
	BasePath:         "/geoip",
	Schemes:          []string{"http"},
	Title:            "Geos API",
	Description:      "Service for geo location by IP based on GeoLite2 database",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
