mirror of
https://github.com/gravitl/netmaker.git
synced 2024-09-20 15:26:04 +08:00
open api spec file (#2595)
* remove usergroup * superadmin * superadmin creation * generate openapi spec file * statticcheck * review comments
This commit is contained in:
parent
7a8311092c
commit
876778a1cc
|
@ -136,6 +136,8 @@ func HandleAuthCallback(w http.ResponseWriter, r *http.Request) {
|
||||||
//
|
//
|
||||||
// Security:
|
// Security:
|
||||||
// oauth
|
// oauth
|
||||||
|
// Responses:
|
||||||
|
// 200: okResponse
|
||||||
func HandleAuthLogin(w http.ResponseWriter, r *http.Request) {
|
func HandleAuthLogin(w http.ResponseWriter, r *http.Request) {
|
||||||
if auth_provider == nil {
|
if auth_provider == nil {
|
||||||
handleOauthNotConfigured(w)
|
handleOauthNotConfigured(w)
|
||||||
|
|
|
@ -33,6 +33,8 @@ func dnsHandlers(r *mux.Router) {
|
||||||
//
|
//
|
||||||
// Security:
|
// Security:
|
||||||
// oauth
|
// oauth
|
||||||
|
// Responses:
|
||||||
|
// 200: dnsResponse
|
||||||
func getNodeDNS(w http.ResponseWriter, r *http.Request) {
|
func getNodeDNS(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
@ -264,8 +266,8 @@ func GetDNSEntry(domain string, network string) (models.DNSEntry, error) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: dnsStringJSONResponse
|
// 200: dnsResponse
|
||||||
// *: dnsStringJSONResponse
|
// *: dnsResponse
|
||||||
func pushDNS(w http.ResponseWriter, r *http.Request) {
|
func pushDNS(w http.ResponseWriter, r *http.Request) {
|
||||||
// Set header
|
// Set header
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
// Schemes: https
|
// Schemes: https
|
||||||
// BasePath: /
|
// BasePath: /
|
||||||
// Version: 0.21.1
|
// Version: 0.21.1
|
||||||
// Host: netmaker.io
|
// Host: api.demo.netmaker.io
|
||||||
//
|
//
|
||||||
// Consumes:
|
// Consumes:
|
||||||
// - application/json
|
// - application/json
|
||||||
|
@ -26,15 +26,37 @@
|
||||||
package controller
|
package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
serverconfigpkg "github.com/gravitl/netmaker/config"
|
"os"
|
||||||
|
|
||||||
|
"github.com/gravitl/netmaker/config"
|
||||||
"github.com/gravitl/netmaker/logic/acls"
|
"github.com/gravitl/netmaker/logic/acls"
|
||||||
"github.com/gravitl/netmaker/models"
|
"github.com/gravitl/netmaker/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ = useUnused() // "use" the function to prevent "unused function" errors
|
var _ = useUnused() // "use" the function to prevent "unused function" errors
|
||||||
|
|
||||||
|
// swagger:parameters getFile
|
||||||
|
type filenameToGet struct {
|
||||||
|
// Filename
|
||||||
|
// in: path
|
||||||
|
// required: true
|
||||||
|
Filename string `json:"filename"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// swagger:response hasAdmin
|
||||||
|
type hasAdmin struct {
|
||||||
|
// in: body
|
||||||
|
Admin bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// swagger:response apiHostResponse
|
||||||
|
type apiHostResponse struct {
|
||||||
|
// in: body
|
||||||
|
Host models.ApiHost
|
||||||
|
}
|
||||||
|
|
||||||
// swagger:parameters getNodeDNS getCustomDNS getDNS
|
// swagger:parameters getNodeDNS getCustomDNS getDNS
|
||||||
type dnsPathParams struct {
|
type dnsNetworkPathParam struct {
|
||||||
// Network
|
// Network
|
||||||
// in: path
|
// in: path
|
||||||
Network string `json:"network"`
|
Network string `json:"network"`
|
||||||
|
@ -45,7 +67,6 @@ type dnsParams struct {
|
||||||
// Network
|
// Network
|
||||||
// in: path
|
// in: path
|
||||||
Network string `json:"network"`
|
Network string `json:"network"`
|
||||||
|
|
||||||
// DNS Entry
|
// DNS Entry
|
||||||
// in: body
|
// in: body
|
||||||
Body []models.DNSEntry `json:"body"`
|
Body []models.DNSEntry `json:"body"`
|
||||||
|
@ -76,6 +97,18 @@ type stringJSONResponse struct {
|
||||||
Response string `json:"response"`
|
Response string `json:"response"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//swagger:response EnrollmentKey
|
||||||
|
type EnrollmentKey struct {
|
||||||
|
// in: body
|
||||||
|
EnrollmentKey models.EnrollmentKey
|
||||||
|
}
|
||||||
|
|
||||||
|
//swagger:response EnrollmentKeys
|
||||||
|
type EnrollmentKeys struct {
|
||||||
|
// in: body
|
||||||
|
EnrollmentKeys []models.EnrollmentKey
|
||||||
|
}
|
||||||
|
|
||||||
// swagger:parameters getAllExtClients
|
// swagger:parameters getAllExtClients
|
||||||
type getAllClientsRequest struct {
|
type getAllClientsRequest struct {
|
||||||
// Networks
|
// Networks
|
||||||
|
@ -97,6 +130,12 @@ type extClientResponse struct {
|
||||||
ExtClient models.ExtClient `json:"ext_client"`
|
ExtClient models.ExtClient `json:"ext_client"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// swagger:response fileResponse
|
||||||
|
type fileResponse struct {
|
||||||
|
// in: body
|
||||||
|
File os.File
|
||||||
|
}
|
||||||
|
|
||||||
// swagger:response successResponse
|
// swagger:response successResponse
|
||||||
type successResponse struct {
|
type successResponse struct {
|
||||||
// Success Response
|
// Success Response
|
||||||
|
@ -104,12 +143,24 @@ type successResponse struct {
|
||||||
SuccessResponse models.SuccessResponse `json:"success_response"`
|
SuccessResponse models.SuccessResponse `json:"success_response"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// swagger:parameters getExtClientConf
|
||||||
|
type extClientConfParams struct {
|
||||||
|
// Client ID
|
||||||
|
// in: path
|
||||||
|
ClientID string `json:"clientid"`
|
||||||
|
// Network
|
||||||
|
// in: path
|
||||||
|
Network string `json:"network"`
|
||||||
|
// Type
|
||||||
|
// in: path
|
||||||
|
Type string `json:"type"`
|
||||||
|
}
|
||||||
|
|
||||||
// swagger:parameters getExtClient getExtClientConf updateExtClient deleteExtClient
|
// swagger:parameters getExtClient getExtClientConf updateExtClient deleteExtClient
|
||||||
type extClientPathParams struct {
|
type extClientPathParams struct {
|
||||||
// Client ID
|
// Client ID
|
||||||
// in: path
|
// in: path
|
||||||
ClientID string `json:"clientid"`
|
ClientID string `json:"clientid"`
|
||||||
|
|
||||||
// Network
|
// Network
|
||||||
// in: path
|
// in: path
|
||||||
Network string `json:"network"`
|
Network string `json:"network"`
|
||||||
|
@ -137,20 +188,17 @@ type createExtClientPathParams struct {
|
||||||
|
|
||||||
// Node ID
|
// Node ID
|
||||||
// in: path
|
// in: path
|
||||||
NodeID string `json:"node"`
|
NodeID string `json:"nodeid"`
|
||||||
|
|
||||||
// Custom ExtClient
|
// Custom ExtClient
|
||||||
// in: body
|
// in: body
|
||||||
CustomExtClient models.CustomExtClient `json:"custom_ext_client"`
|
CustomExtClient models.CustomExtClient `json:"custom_ext_client"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:parameters getNode updateNode deleteNode createRelay deleteRelay createEgressGateway deleteEgressGateway createIngressGateway deleteIngressGateway uncordonNode
|
// swagger:parameters getNode updateNode deleteNode createRelay deleteRelay createEgressGateway deleteEgressGateway createIngressGateway deleteIngressGateway ingressGatewayUsers
|
||||||
type networkNodePathParams struct {
|
type networkNodePathParams struct {
|
||||||
// Network
|
|
||||||
// in: path
|
// in: path
|
||||||
Network string `json:"network"`
|
Network string `json:"network"`
|
||||||
|
|
||||||
// Node ID
|
|
||||||
// in: path
|
// in: path
|
||||||
NodeID string `json:"nodeid"`
|
NodeID string `json:"nodeid"`
|
||||||
}
|
}
|
||||||
|
@ -161,11 +209,11 @@ type byteArrayResponse struct {
|
||||||
ByteArray []byte `json:"byte_array"`
|
ByteArray []byte `json:"byte_array"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:parameters getNetworks
|
// swagger:parameters getNetwork deleteNetwork updateNetwork getNetworkACL updateNetworkACL
|
||||||
type headerNetworks struct {
|
type NetworkParam struct {
|
||||||
// name: networks
|
// name: network name
|
||||||
// in: header
|
// in: path
|
||||||
Networks []string `json:"networks"`
|
Networkname string `json:"networkname"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:response getNetworksSliceResponse
|
// swagger:response getNetworksSliceResponse
|
||||||
|
@ -175,6 +223,13 @@ type getNetworksSliceResponse struct {
|
||||||
Networks []models.Network `json:"networks"`
|
Networks []models.Network `json:"networks"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// swagger:response hostPull
|
||||||
|
type hostPull struct {
|
||||||
|
// hostPull
|
||||||
|
// in: body
|
||||||
|
HostPull models.HostPull
|
||||||
|
}
|
||||||
|
|
||||||
// swagger:parameters createNetwork updateNetwork
|
// swagger:parameters createNetwork updateNetwork
|
||||||
type networkBodyParam struct {
|
type networkBodyParam struct {
|
||||||
// Network
|
// Network
|
||||||
|
@ -182,18 +237,11 @@ type networkBodyParam struct {
|
||||||
Network models.Network `json:"network"`
|
Network models.Network `json:"network"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:parameters updateNetwork getNetwork updateNetwork updateNetworkNodeLimit deleteNetwork keyUpdate createAccessKey getAccessKeys deleteAccessKey updateNetworkACL getNetworkACL
|
// swagger:parameters updateNetworkNodeLimit keyUpdate createAccessKey getAccessKeys getNetworkNodes
|
||||||
type networkPathParam struct {
|
type networkPathParam struct {
|
||||||
// Network Name
|
// Network
|
||||||
// in: path
|
// in: path
|
||||||
NetworkName string `json:"networkname"`
|
Network string `json:"network"`
|
||||||
}
|
|
||||||
|
|
||||||
// swagger:parameters deleteAccessKey
|
|
||||||
type networkAccessKeyNamePathParam struct {
|
|
||||||
// Access Key Name
|
|
||||||
// in: path
|
|
||||||
AccessKeyName string `json:"access_key_name"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:response networkBodyResponse
|
// swagger:response networkBodyResponse
|
||||||
|
@ -238,6 +286,15 @@ type nodeBodyParam struct {
|
||||||
Node models.LegacyNode `json:"node"`
|
Node models.LegacyNode `json:"node"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//swagger:response okResponse
|
||||||
|
type okRespone struct{}
|
||||||
|
|
||||||
|
// swagger:response RegisterResponse
|
||||||
|
type RegisterResponse struct {
|
||||||
|
// in: body
|
||||||
|
RegisterResponse models.RegisterResponse
|
||||||
|
}
|
||||||
|
|
||||||
// swagger:parameters createRelay
|
// swagger:parameters createRelay
|
||||||
type relayRequestBodyParam struct {
|
type relayRequestBodyParam struct {
|
||||||
// Relay Request
|
// Relay Request
|
||||||
|
@ -252,53 +309,68 @@ type egressGatewayBodyParam struct {
|
||||||
EgressGatewayRequest models.EgressGatewayRequest `json:"egress_gateway_request"`
|
EgressGatewayRequest models.EgressGatewayRequest `json:"egress_gateway_request"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// swagger:parameters attachUserToRemoteAccessGateway removeUserFromRemoteAccessGW getUserRemoteAccessGws
|
||||||
|
type RemoteAccessGatewayUser struct {
|
||||||
|
// in: path
|
||||||
|
Username string `json:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
// swagger:parameters authenticate
|
// swagger:parameters authenticate
|
||||||
type authParamBodyParam struct {
|
type authParamBodyParam struct {
|
||||||
|
// network
|
||||||
|
// in: path
|
||||||
|
Network string `json:"network"`
|
||||||
// AuthParams
|
// AuthParams
|
||||||
// in: body
|
// in: body
|
||||||
AuthParams models.AuthParams `json:"auth_params"`
|
AuthParams models.AuthParams `json:"auth_params"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// swagger:response signal
|
||||||
|
type signal struct {
|
||||||
|
// in: body
|
||||||
|
Signal models.Signal
|
||||||
|
}
|
||||||
|
|
||||||
|
// swagger:parameters synchost deleteHost updateHost signalPeer updateKeys
|
||||||
|
type HostID struct {
|
||||||
|
// HostID
|
||||||
|
// in: path
|
||||||
|
HostID string `json:"hostid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// swagger:parameters addHostToNetwork deleteHostFromNetwork
|
||||||
|
type HostFromNetworkParams struct {
|
||||||
|
// hostid to add or delete from network
|
||||||
|
// in: path
|
||||||
|
HostID string `json:"hostid"`
|
||||||
|
// network
|
||||||
|
// in: path
|
||||||
|
Network string `json:"network"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// swagger:parameters deleteEnrollmentKey
|
||||||
|
type DeleteEnrollmentKeyParam struct {
|
||||||
|
// in: path
|
||||||
|
KeyID string `json:"keyid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// swagger:parameters handleHostRegister
|
||||||
|
type RegisterParams struct {
|
||||||
|
// in: path
|
||||||
|
Token string `json:"token"`
|
||||||
|
// in: body
|
||||||
|
Host models.Host `json:"host"`
|
||||||
|
}
|
||||||
|
|
||||||
// swagger:response serverConfigResponse
|
// swagger:response serverConfigResponse
|
||||||
type serverConfigResponse struct {
|
type serverConfigResponse struct {
|
||||||
// Server Config
|
// Server Config
|
||||||
// in: body
|
// in: body
|
||||||
ServerConfig serverconfigpkg.ServerConfig `json:"server_config"`
|
// example
|
||||||
}
|
//{
|
||||||
|
//"mqusername": "xxxxxxx"
|
||||||
// swagger:response nodeGetResponse
|
//}
|
||||||
type nodeGetResponse struct {
|
ServerConfig config.ServerConfig `json:"server_config"`
|
||||||
// Node Get
|
|
||||||
// in: body
|
|
||||||
NodeGet models.NodeGet `json:"node_get"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// swagger:response nodeLastModifiedResponse
|
|
||||||
type nodeLastModifiedResponse struct {
|
|
||||||
// Node Last Modified
|
|
||||||
// in: body
|
|
||||||
NodesLastModified int64 `json:"nodes_last_modified"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// swagger:parameters register
|
|
||||||
//type registerRequestBodyParam struct {
|
|
||||||
// // Register Request
|
|
||||||
// // in: body
|
|
||||||
// RegisterRequest config.RegisterRequest `json:"register_request"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//// swagger:response registerResponse
|
|
||||||
//type registerResponse struct {
|
|
||||||
// // Register Response
|
|
||||||
// // in: body
|
|
||||||
// RegisterResponse config.RegisterResponse `json:"register_response"`
|
|
||||||
//}
|
|
||||||
|
|
||||||
// swagger:response boolResponse
|
|
||||||
type boolResponse struct {
|
|
||||||
// Boolean Response
|
|
||||||
// in: body
|
|
||||||
BoolResponse bool `json:"bool_response"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:parameters createAdmin updateUser updateUserNetworks createUser
|
// swagger:parameters createAdmin updateUser updateUserNetworks createUser
|
||||||
|
@ -331,7 +403,6 @@ type usernamePathParam struct {
|
||||||
|
|
||||||
// prevent issues with integration tests for types just used by Swagger docs.
|
// prevent issues with integration tests for types just used by Swagger docs.
|
||||||
func useUnused() bool {
|
func useUnused() bool {
|
||||||
_ = dnsPathParams{}
|
|
||||||
_ = dnsParams{}
|
_ = dnsParams{}
|
||||||
_ = dnsResponse{}
|
_ = dnsResponse{}
|
||||||
_ = dnsDeletePathParams{}
|
_ = dnsDeletePathParams{}
|
||||||
|
@ -346,11 +417,9 @@ func useUnused() bool {
|
||||||
_ = createExtClientPathParams{}
|
_ = createExtClientPathParams{}
|
||||||
_ = networkNodePathParams{}
|
_ = networkNodePathParams{}
|
||||||
_ = byteArrayResponse{}
|
_ = byteArrayResponse{}
|
||||||
_ = headerNetworks{}
|
|
||||||
_ = getNetworksSliceResponse{}
|
_ = getNetworksSliceResponse{}
|
||||||
_ = networkBodyParam{}
|
_ = networkBodyParam{}
|
||||||
_ = networkPathParam{}
|
_ = networkPathParam{}
|
||||||
_ = networkAccessKeyNamePathParam{}
|
|
||||||
_ = networkBodyResponse{}
|
_ = networkBodyResponse{}
|
||||||
_ = aclContainerBodyParam{}
|
_ = aclContainerBodyParam{}
|
||||||
_ = aclContainerResponse{}
|
_ = aclContainerResponse{}
|
||||||
|
@ -361,14 +430,18 @@ func useUnused() bool {
|
||||||
_ = egressGatewayBodyParam{}
|
_ = egressGatewayBodyParam{}
|
||||||
_ = authParamBodyParam{}
|
_ = authParamBodyParam{}
|
||||||
_ = serverConfigResponse{}
|
_ = serverConfigResponse{}
|
||||||
_ = nodeGetResponse{}
|
|
||||||
_ = nodeLastModifiedResponse{}
|
|
||||||
// _ = registerRequestBodyParam{}
|
|
||||||
// _ = registerResponse{}
|
|
||||||
_ = boolResponse{}
|
|
||||||
_ = userBodyParam{}
|
_ = userBodyParam{}
|
||||||
_ = userBodyResponse{}
|
_ = userBodyResponse{}
|
||||||
_ = userAuthBodyParam{}
|
_ = userAuthBodyParam{}
|
||||||
_ = usernamePathParam{}
|
_ = usernamePathParam{}
|
||||||
|
_ = hasAdmin{}
|
||||||
|
_ = apiHostResponse{}
|
||||||
|
_ = fileResponse{}
|
||||||
|
_ = extClientConfParams{}
|
||||||
|
_ = hostPull{}
|
||||||
|
_ = okRespone{}
|
||||||
|
_ = signal{}
|
||||||
|
_ = filenameToGet{}
|
||||||
|
_ = dnsNetworkPathParam{}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ func enrollmentKeyHandlers(r *mux.Router) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: getEnrollmentKeysSlice
|
// 200: EnrollmentKeys
|
||||||
func getEnrollmentKeys(w http.ResponseWriter, r *http.Request) {
|
func getEnrollmentKeys(w http.ResponseWriter, r *http.Request) {
|
||||||
keys, err := logic.GetAllEnrollmentKeys()
|
keys, err := logic.GetAllEnrollmentKeys()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -58,7 +58,7 @@ func getEnrollmentKeys(w http.ResponseWriter, r *http.Request) {
|
||||||
json.NewEncoder(w).Encode(ret)
|
json.NewEncoder(w).Encode(ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route DELETE /api/v1/enrollment-keys/{keyID} enrollmentKeys deleteEnrollmentKey
|
// swagger:route DELETE /api/v1/enrollment-keys/{keyid} enrollmentKeys deleteEnrollmentKey
|
||||||
//
|
//
|
||||||
// Deletes an EnrollmentKey from Netmaker server.
|
// Deletes an EnrollmentKey from Netmaker server.
|
||||||
//
|
//
|
||||||
|
@ -68,7 +68,7 @@ func getEnrollmentKeys(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: deleteEnrollmentKeyResponse
|
// 200: okResponse
|
||||||
func deleteEnrollmentKey(w http.ResponseWriter, r *http.Request) {
|
func deleteEnrollmentKey(w http.ResponseWriter, r *http.Request) {
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
keyID := params["keyID"]
|
keyID := params["keyID"]
|
||||||
|
@ -92,7 +92,7 @@ func deleteEnrollmentKey(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: createEnrollmentKeyResponse
|
// 200: EnrollmentKey
|
||||||
func createEnrollmentKey(w http.ResponseWriter, r *http.Request) {
|
func createEnrollmentKey(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
var enrollmentKeyBody models.APIEnrollmentKey
|
var enrollmentKeyBody models.APIEnrollmentKey
|
||||||
|
@ -136,7 +136,7 @@ func createEnrollmentKey(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: handleHostRegisterResponse
|
// 200: RegisterResponse
|
||||||
func handleHostRegister(w http.ResponseWriter, r *http.Request) {
|
func handleHostRegister(w http.ResponseWriter, r *http.Request) {
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
token := params["token"]
|
token := params["token"]
|
||||||
|
|
|
@ -303,6 +303,8 @@ Endpoint = %s
|
||||||
//
|
//
|
||||||
// Security:
|
// Security:
|
||||||
// oauth
|
// oauth
|
||||||
|
// Responses:
|
||||||
|
// 200: okResponse
|
||||||
func createExtClient(w http.ResponseWriter, r *http.Request) {
|
func createExtClient(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func fileHandlers(r *mux.Router) {
|
func fileHandlers(r *mux.Router) {
|
||||||
// swagger:route GET /meshclient/files/{filename} meshclient fileServer
|
// swagger:route GET /meshclient/files/{filename} meshclient getFile
|
||||||
//
|
//
|
||||||
// Retrieve a file from the file server.
|
// Retrieve a file from the file server.
|
||||||
//
|
//
|
||||||
|
@ -15,5 +15,7 @@ func fileHandlers(r *mux.Router) {
|
||||||
//
|
//
|
||||||
// Security:
|
// Security:
|
||||||
// oauth
|
// oauth
|
||||||
|
// Responses:
|
||||||
|
// 200: fileResponse
|
||||||
r.PathPrefix("/meshclient/files").Handler(http.StripPrefix("/meshclient/files", http.FileServer(http.Dir("./meshclient/files"))))
|
r.PathPrefix("/meshclient/files").Handler(http.StripPrefix("/meshclient/files", http.FileServer(http.Dir("./meshclient/files"))))
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ func upgradeHost(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: getHostsSliceResponse
|
// 200: apiHostResponse
|
||||||
func getHosts(w http.ResponseWriter, r *http.Request) {
|
func getHosts(w http.ResponseWriter, r *http.Request) {
|
||||||
currentHosts, err := logic.GetAllHosts()
|
currentHosts, err := logic.GetAllHosts()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -73,7 +73,7 @@ func getHosts(w http.ResponseWriter, r *http.Request) {
|
||||||
json.NewEncoder(w).Encode(apiHosts)
|
json.NewEncoder(w).Encode(apiHosts)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route GET /api/v1/host pull pullHost
|
// swagger:route GET /api/v1/host hosts pullHost
|
||||||
//
|
//
|
||||||
// Used by clients for "pull" command
|
// Used by clients for "pull" command
|
||||||
//
|
//
|
||||||
|
@ -83,7 +83,7 @@ func getHosts(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: pull
|
// 200: hostPull
|
||||||
func pull(w http.ResponseWriter, r *http.Request) {
|
func pull(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
hostID := r.Header.Get(hostIDHeader) // return JSON/API formatted keys
|
hostID := r.Header.Get(hostIDHeader) // return JSON/API formatted keys
|
||||||
|
@ -145,7 +145,7 @@ func pull(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: updateHostResponse
|
// 200: apiHostResponse
|
||||||
func updateHost(w http.ResponseWriter, r *http.Request) {
|
func updateHost(w http.ResponseWriter, r *http.Request) {
|
||||||
var newHostData models.ApiHost
|
var newHostData models.ApiHost
|
||||||
err := json.NewDecoder(r.Body).Decode(&newHostData)
|
err := json.NewDecoder(r.Body).Decode(&newHostData)
|
||||||
|
@ -213,7 +213,7 @@ func updateHost(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: deleteHostResponse
|
// 200: apiHostResponse
|
||||||
func deleteHost(w http.ResponseWriter, r *http.Request) {
|
func deleteHost(w http.ResponseWriter, r *http.Request) {
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
hostid := params["hostid"]
|
hostid := params["hostid"]
|
||||||
|
@ -252,9 +252,8 @@ func deleteHost(w http.ResponseWriter, r *http.Request) {
|
||||||
//
|
//
|
||||||
// Security:
|
// Security:
|
||||||
// oauth
|
// oauth
|
||||||
//
|
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: addHostToNetworkResponse
|
// 200: okResponse
|
||||||
func addHostToNetwork(w http.ResponseWriter, r *http.Request) {
|
func addHostToNetwork(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
|
@ -301,7 +300,7 @@ func addHostToNetwork(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: deleteHostFromNetworkResponse
|
// 200: okResponse
|
||||||
func deleteHostFromNetwork(w http.ResponseWriter, r *http.Request) {
|
func deleteHostFromNetwork(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
|
@ -378,7 +377,7 @@ func deleteHostFromNetwork(w http.ResponseWriter, r *http.Request) {
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route POST /api/hosts/adm/authenticate hosts authenticateHost
|
// swagger:route POST /api/hosts/adm/authenticate authenticate authenticateHost
|
||||||
//
|
//
|
||||||
// Host based authentication for making further API calls.
|
// Host based authentication for making further API calls.
|
||||||
//
|
//
|
||||||
|
@ -471,7 +470,7 @@ func authenticateHost(response http.ResponseWriter, request *http.Request) {
|
||||||
response.Write(successJSONResponse)
|
response.Write(successJSONResponse)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route POST /api/hosts/{hostid}/signalpeer signalPeer
|
// swagger:route POST /api/hosts/{hostid}/signalpeer hosts signalPeer
|
||||||
//
|
//
|
||||||
// send signal to peer.
|
// send signal to peer.
|
||||||
//
|
//
|
||||||
|
@ -537,7 +536,7 @@ func signalPeer(w http.ResponseWriter, r *http.Request) {
|
||||||
json.NewEncoder(w).Encode(signal)
|
json.NewEncoder(w).Encode(signal)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route POST /api/hosts/keys host updateAllKeys
|
// swagger:route POST /api/hosts/keys hosts updateAllKeys
|
||||||
//
|
//
|
||||||
// Update keys for a network.
|
// Update keys for a network.
|
||||||
//
|
//
|
||||||
|
@ -575,7 +574,7 @@ func updateAllKeys(w http.ResponseWriter, r *http.Request) {
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route POST /api/hosts/{hostid}keys host updateKeys
|
// swagger:route POST /api/hosts/{hostid}keys hosts updateKeys
|
||||||
//
|
//
|
||||||
// Update keys for a network.
|
// Update keys for a network.
|
||||||
//
|
//
|
||||||
|
@ -614,7 +613,7 @@ func updateKeys(w http.ResponseWriter, r *http.Request) {
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route POST /api/hosts/{hostId}/sync host syncHost
|
// swagger:route POST /api/hosts/{hostid}/sync hosts synchost
|
||||||
//
|
//
|
||||||
// Requests a host to pull.
|
// Requests a host to pull.
|
||||||
//
|
//
|
||||||
|
|
|
@ -22,7 +22,7 @@ func legacyHandlers(r *mux.Router) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: wipeLegacyNodesResponse
|
// 200: successResponse
|
||||||
func wipeLegacyNodes(w http.ResponseWriter, r *http.Request) {
|
func wipeLegacyNodes(w http.ResponseWriter, r *http.Request) {
|
||||||
// Set header
|
// Set header
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||||
)
|
)
|
||||||
|
|
||||||
// swagger:route PUT /api/v1/nodes/migrate nodes migrateNode
|
// swagger:route PUT /api/v1/nodes/migrate nodes migrateData
|
||||||
//
|
//
|
||||||
// Used to migrate a legacy node.
|
// Used to migrate a legacy node.
|
||||||
//
|
//
|
||||||
|
@ -29,7 +29,7 @@ import (
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: nodeJoinResponse
|
// 200: hostPull
|
||||||
func migrate(w http.ResponseWriter, r *http.Request) {
|
func migrate(w http.ResponseWriter, r *http.Request) {
|
||||||
data := models.MigrationData{}
|
data := models.MigrationData{}
|
||||||
host := models.Host{}
|
host := models.Host{}
|
||||||
|
|
|
@ -180,7 +180,7 @@ func getNetworkACL(w http.ResponseWriter, r *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: stringJSONResponse
|
// 200: successResponse
|
||||||
func deleteNetwork(w http.ResponseWriter, r *http.Request) {
|
func deleteNetwork(w http.ResponseWriter, r *http.Request) {
|
||||||
// Set header
|
// Set header
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
@ -278,7 +278,7 @@ func createNetwork(w http.ResponseWriter, r *http.Request) {
|
||||||
json.NewEncoder(w).Encode(network)
|
json.NewEncoder(w).Encode(network)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route PUT /api/networks networks updateNetwork
|
// swagger:route PUT /api/networks/{networkname} networks updateNetwork
|
||||||
//
|
//
|
||||||
// Update pro settings for a network.
|
// Update pro settings for a network.
|
||||||
//
|
//
|
||||||
|
|
|
@ -34,7 +34,7 @@ func nodeHandlers(r *mux.Router) {
|
||||||
r.HandleFunc("/api/v1/nodes/migrate", migrate).Methods(http.MethodPost)
|
r.HandleFunc("/api/v1/nodes/migrate", migrate).Methods(http.MethodPost)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route POST /api/nodes/adm/{network}/authenticate nodes authenticate
|
// swagger:route POST /api/nodes/adm/{network}/authenticate authenticate authenticate
|
||||||
//
|
//
|
||||||
// Authenticate to make further API calls related to a network.
|
// Authenticate to make further API calls related to a network.
|
||||||
//
|
//
|
||||||
|
|
|
@ -37,9 +37,9 @@ func userHandlers(r *mux.Router) {
|
||||||
r.HandleFunc("/api/oauth/register/{regKey}", auth.RegisterHostSSO).Methods(http.MethodGet)
|
r.HandleFunc("/api/oauth/register/{regKey}", auth.RegisterHostSSO).Methods(http.MethodGet)
|
||||||
}
|
}
|
||||||
|
|
||||||
// swagger:route POST /api/users/adm/authenticate user authenticateUser
|
// swagger:route POST /api/users/adm/authenticate authenticate authenticateUser
|
||||||
//
|
//
|
||||||
// Node authenticates using its password and retrieves a JWT for authorization.
|
// User authenticates using its password and retrieves a JWT for authorization.
|
||||||
//
|
//
|
||||||
// Schemes: https
|
// Schemes: https
|
||||||
//
|
//
|
||||||
|
@ -145,7 +145,7 @@ func authenticateUser(response http.ResponseWriter, request *http.Request) {
|
||||||
// oauth
|
// oauth
|
||||||
//
|
//
|
||||||
// Responses:
|
// Responses:
|
||||||
// 200: successResponse
|
// 200: hasAdmin
|
||||||
func hasSuperAdmin(w http.ResponseWriter, r *http.Request) {
|
func hasSuperAdmin(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
|
|
@ -78,7 +78,7 @@ func attachUserToRemoteAccessGw(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
// swagger:route DELETE /api/users/{username}/remote_access_gw user removeUserFromRemoteAccessGW
|
// swagger:route DELETE /api/users/{username}/remote_access_gw user removeUserFromRemoteAccessGW
|
||||||
//
|
//
|
||||||
// Attach User to a remote access gateway.
|
// Delete User from a remote access gateway.
|
||||||
//
|
//
|
||||||
// Schemes: https
|
// Schemes: https
|
||||||
//
|
//
|
||||||
|
|
3625
swagger.yml
3625
swagger.yml
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue