// Package classification Netmaker // // # API Usage // // Most actions that can be performed via API can be performed via UI. We recommend managing your networks using the official netmaker-ui project. However, Netmaker can also be run without the UI, and all functions can be achieved via API calls. If your use case requires using Netmaker without the UI or you need to do some troubleshooting/advanced configuration, using the API directly may help. // // # Authentication // // API calls must be authenticated via a header of the format -H “Authorization: Bearer ” There are two methods to obtain YOUR_SECRET_KEY: 1. Using the masterkey. By default, this value is “secret key,” but you should change this on your instance and keep it secure. This value can be set via env var at startup or in a config file (config/environments/< env >.yaml). See the [Netmaker](https://docs.netmaker.org/index.html) documentation for more details. 2. Using a JWT received for a node. This can be retrieved by calling the /api/nodes//authenticate endpoint, as documented below. // // Schemes: https // BasePath: / // Version: 0.18.6 // Host: netmaker.io // // Consumes: // - application/json // // Produces: // - application/json // // Security: // - oauth // // swagger:meta package controller import ( serverconfigpkg "github.com/gravitl/netmaker/config" "github.com/gravitl/netmaker/logic/acls" "github.com/gravitl/netmaker/models" ) var _ = useUnused() // "use" the function to prevent "unused function" errors // swagger:parameters getNodeDNS getCustomDNS getDNS type dnsPathParams struct { // Network // in: path Network string `json:"network"` } // swagger:parameters createDNS type dnsParams struct { // Network // in: path Network string `json:"network"` // DNS Entry // in: body Body []models.DNSEntry `json:"body"` } // Success // swagger:response dnsResponse type dnsResponse struct { // in: body Body []models.DNSEntry `json:"body"` } // swagger:parameters deleteDNS type dnsDeletePathParams struct { // Network // in: path Network string `json:"network"` // Domain // in: path Domain string `json:"domain"` } // swagger:response stringJSONResponse type stringJSONResponse struct { // Response // in: body Response string `json:"response"` } // swagger:parameters getAllExtClients type getAllClientsRequest struct { // Networks // in:body Networks []string `json:"networks"` } // swagger:response extClientSliceResponse type extClientSliceResponse struct { // ExtClients // in: body ExtClients []models.ExtClient `json:"ext_clients"` } // swagger:response extClientResponse type extClientResponse struct { // ExtClient // in: body ExtClient models.ExtClient `json:"ext_client"` } // swagger:response successResponse type successResponse struct { // Success Response // in: body SuccessResponse models.SuccessResponse `json:"success_response"` } // swagger:parameters getExtClient getExtClientConf updateExtClient deleteExtClient type extClientPathParams struct { // Client ID // in: path ClientID string `json:"clientid"` // Network // in: path Network string `json:"network"` } // swagger:parameters updateExtClient type extClientBodyParam struct { // ExtClient // in: body ExtClient models.ExtClient `json:"ext_client"` } // swagger:parameters getNetworkExtClients type extClientNetworkPathParam struct { // Network // in: path Network string `json:"network"` } // swagger:parameters createExtClient type createExtClientPathParams struct { // Network // in: path Network string `json:"network"` // Node ID // in: path NodeID string `json:"node"` // Custom ExtClient // in: body CustomExtClient models.CustomExtClient `json:"custom_ext_client"` } // swagger:parameters getNode updateNode deleteNode createRelay deleteRelay createEgressGateway deleteEgressGateway createIngressGateway deleteIngressGateway uncordonNode type networkNodePathParams struct { // Network // in: path Network string `json:"network"` // Node ID // in: path NodeID string `json:"nodeid"` } // swagger:response byteArrayResponse type byteArrayResponse struct { // in: body ByteArray []byte `json:"byte_array"` } // swagger:parameters getNetworks type headerNetworks struct { // name: networks // in: header Networks []string `json:"networks"` } // swagger:response getNetworksSliceResponse type getNetworksSliceResponse struct { // Networks // in: body Networks []models.Network `json:"networks"` } // swagger:parameters createNetwork updateNetwork type networkBodyParam struct { // Network // in: body Network models.Network `json:"network"` } // swagger:parameters updateNetwork getNetwork updateNetwork updateNetworkNodeLimit deleteNetwork keyUpdate createAccessKey getAccessKeys deleteAccessKey updateNetworkACL getNetworkACL type networkPathParam struct { // Network Name // in: path NetworkName string `json:"networkname"` } // swagger:parameters deleteAccessKey type networkAccessKeyNamePathParam struct { // Access Key Name // in: path AccessKeyName string `json:"access_key_name"` } // swagger:response networkBodyResponse type networkBodyResponse struct { // Network // in: body Network models.Network `json:"network"` } // swagger:parameters updateNetworkACL getNetworkACL type aclContainerBodyParam struct { // ACL Container // in: body ACLContainer acls.ACLContainer `json:"acl_container"` } // swagger:response aclContainerResponse type aclContainerResponse struct { // ACL Container // in: body ACLContainer acls.ACLContainer `json:"acl_container"` } // swagger:response nodeSliceResponse type nodeSliceResponse struct { // Nodes // in: body Nodes []models.LegacyNode `json:"nodes"` } // swagger:response nodeResponse type nodeResponse struct { // Node // in: body Node models.LegacyNode `json:"node"` } // swagger:parameters updateNode deleteNode type nodeBodyParam struct { // Node // in: body Node models.LegacyNode `json:"node"` } // swagger:parameters createRelay type relayRequestBodyParam struct { // Relay Request // in: body RelayRequest models.RelayRequest `json:"relay_request"` } // swagger:parameters createEgressGateway type egressGatewayBodyParam struct { // Egress Gateway Request // in: body EgressGatewayRequest models.EgressGatewayRequest `json:"egress_gateway_request"` } // swagger:parameters authenticate type authParamBodyParam struct { // AuthParams // in: body AuthParams models.AuthParams `json:"auth_params"` } // swagger:response serverConfigResponse type serverConfigResponse struct { // Server Config // in: body ServerConfig serverconfigpkg.ServerConfig `json:"server_config"` } // swagger:response nodeGetResponse type nodeGetResponse struct { // 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 type userBodyParam struct { // User // in: body User models.User `json:"user"` } // swagger:response userBodyResponse type userBodyResponse struct { // User // in: body User models.User `json:"user"` } // swagger:parameters authenticateUser type userAuthBodyParam struct { // User Auth Params // in: body UserAuthParams models.UserAuthParams `json:"user_auth_params"` } // swagger:parameters updateUser updateUserNetworks updateUserAdm createUser deleteUser getUser type usernamePathParam struct { // Username // in: path Username string `json:"username"` } // prevent issues with integration tests for types just used by Swagger docs. func useUnused() bool { _ = dnsPathParams{} _ = dnsParams{} _ = dnsResponse{} _ = dnsDeletePathParams{} _ = stringJSONResponse{} _ = getAllClientsRequest{} _ = extClientSliceResponse{} _ = extClientResponse{} _ = successResponse{} _ = extClientPathParams{} _ = extClientBodyParam{} _ = extClientNetworkPathParam{} _ = createExtClientPathParams{} _ = networkNodePathParams{} _ = byteArrayResponse{} _ = headerNetworks{} _ = getNetworksSliceResponse{} _ = networkBodyParam{} _ = networkPathParam{} _ = networkAccessKeyNamePathParam{} _ = networkBodyResponse{} _ = aclContainerBodyParam{} _ = aclContainerResponse{} _ = nodeSliceResponse{} _ = nodeResponse{} _ = nodeBodyParam{} _ = relayRequestBodyParam{} _ = egressGatewayBodyParam{} _ = authParamBodyParam{} _ = serverConfigResponse{} _ = nodeGetResponse{} _ = nodeLastModifiedResponse{} // _ = registerRequestBodyParam{} // _ = registerResponse{} _ = boolResponse{} _ = userBodyParam{} _ = userBodyResponse{} _ = userAuthBodyParam{} _ = usernamePathParam{} return false }