| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468 | // 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 <YOUR_SECRET_KEY>” 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/<network>/authenticate endpoint, as documented below.////	Schemes: https//	BasePath: ///	Version: 0.23.1//	Host: api.demo.netmaker.io////	Consumes://	- application/json////	Produces://	- application/json////	Security://	- oauth//// swagger:metapackage controllerimport (	"os"	"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 getFiletype filenameToGet struct {	// Filename	// in: path	// required: true	Filename string `json:"filename"`}// swagger:response hasAdmintype hasAdmin struct {	// in: body	Admin bool}// swagger:response apiHostResponsetype apiHostResponse struct {	// in: body	Host models.ApiHost}// swagger:parameters getNodeDNS getCustomDNS getDNStype dnsNetworkPathParam struct {	// Network	// in: path	Network string `json:"network"`}// swagger:parameters createDNStype dnsParams struct {	// Network	// in: path	Network string `json:"network"`	// DNS Entry	// in: body	Body []models.DNSEntry `json:"body"`}// Success// swagger:response dnsResponsetype dnsResponse struct {	// in: body	Body []models.DNSEntry `json:"body"`}// swagger:parameters deleteDNStype dnsDeletePathParams struct {	// Network	// in: path	Network string `json:"network"`	// Domain	// in: path	Domain string `json:"domain"`}// swagger:response stringJSONResponsetype stringJSONResponse struct {	// Response	// in: body	Response string `json:"response"`}//swagger:response EnrollmentKeytype EnrollmentKey struct {	// in: body	EnrollmentKey models.EnrollmentKey}//swagger:response EnrollmentKeystype EnrollmentKeys struct {	// in: body	EnrollmentKeys []models.EnrollmentKey}// swagger:parameters getAllExtClientstype getAllClientsRequest struct {	// Networks	// in:body	Networks []string `json:"networks"`}// swagger:response extClientSliceResponsetype extClientSliceResponse struct {	// ExtClients	// in: body	ExtClients []models.ExtClient `json:"ext_clients"`}// swagger:response extClientResponsetype extClientResponse struct {	// ExtClient	// in: body	ExtClient models.ExtClient `json:"ext_client"`}// swagger:response fileResponsetype fileResponse struct {	// in: body	File os.File}// swagger:response successResponsetype successResponse struct {	// Success Response	// in: body	SuccessResponse models.SuccessResponse `json:"success_response"`}// swagger:parameters getExtClientConftype 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 deleteExtClienttype extClientPathParams struct {	// Client ID	// in: path	ClientID string `json:"clientid"`	// Network	// in: path	Network string `json:"network"`}// swagger:parameters updateExtClienttype extClientBodyParam struct {	// ExtClient	// in: body	ExtClient models.ExtClient `json:"ext_client"`}// swagger:parameters getNetworkExtClientstype extClientNetworkPathParam struct {	// Network	// in: path	Network string `json:"network"`}// swagger:parameters createExtClienttype createExtClientPathParams struct {	// Network	// in: path	Network string `json:"network"`	// Node ID	// in: path	NodeID string `json:"nodeid"`	// Custom ExtClient	// in: body	CustomExtClient models.CustomExtClient `json:"custom_ext_client"`}// swagger:parameters getNode updateNode deleteNode createRelay deleteRelay createEgressGateway deleteEgressGateway createIngressGateway deleteIngressGateway ingressGatewayUserstype networkNodePathParams struct {	// in: path	Network string `json:"network"`	// in: path	NodeID string `json:"nodeid"`}// swagger:response byteArrayResponsetype byteArrayResponse struct {	// in: body	ByteArray []byte `json:"byte_array"`}// swagger:parameters getNetwork deleteNetwork updateNetwork getNetworkACL updateNetworkACLtype NetworkParam struct {	// name: network name	// in:  path	Networkname string `json:"networkname"`}// swagger:response getNetworksSliceResponsetype getNetworksSliceResponse struct {	// Networks	// in: body	Networks []models.Network `json:"networks"`}// swagger:response hostPulltype hostPull struct {	// hostPull	// in: body	HostPull models.HostPull}// swagger:parameters createNetwork updateNetworktype networkBodyParam struct {	// Network	// in: body	Network models.Network `json:"network"`}// swagger:parameters updateNetworkNodeLimit keyUpdate createAccessKey getAccessKeys getNetworkNodestype networkPathParam struct {	// Network	// in: path	Network string `json:"network"`}// swagger:response networkBodyResponsetype networkBodyResponse struct {	// Network	// in: body	Network models.Network `json:"network"`}// swagger:parameters updateNetworkACL getNetworkACLtype aclContainerBodyParam struct {	// ACL Container	// in: body	ACLContainer acls.ACLContainer `json:"acl_container"`}// swagger:response aclContainerResponsetype aclContainerResponse struct {	// ACL Container	// in: body	ACLContainer acls.ACLContainer `json:"acl_container"`}// swagger:response nodeSliceResponsetype nodeSliceResponse struct {	// Nodes	// in: body	Nodes []models.LegacyNode `json:"nodes"`}// swagger:response nodeResponsetype nodeResponse struct {	// Node	// in: body	Node models.LegacyNode `json:"node"`}// swagger:parameters updateNode deleteNodetype nodeBodyParam struct {	// Node	// in: body	Node models.LegacyNode `json:"node"`}//swagger:response okResponsetype okRespone struct{}// swagger:response RegisterResponsetype RegisterResponse struct {	// in: body	RegisterResponse models.RegisterResponse}// swagger:parameters createRelaytype relayRequestBodyParam struct {	// Relay Request	// in: body	RelayRequest models.RelayRequest `json:"relay_request"`}// swagger:parameters createEgressGatewaytype egressGatewayBodyParam struct {	// Egress Gateway Request	// in: body	EgressGatewayRequest models.EgressGatewayRequest `json:"egress_gateway_request"`}// swagger:parameters attachUserToRemoteAccessGateway removeUserFromRemoteAccessGW getUserRemoteAccessGwstype RemoteAccessGatewayUser struct {	// in: path	Username string `json:"username"`}// swagger:parameters authenticatetype authParamBodyParam struct {	// network	// in: path	Network string `json:"network"`	// AuthParams	// in: body	AuthParams models.AuthParams `json:"auth_params"`}// swagger:response signaltype signal struct {	// in: body	Signal models.Signal}// swagger:parameters synchost deleteHost updateHost signalPeer updateKeystype HostID struct {	// HostID	// in: path	HostID string `json:"hostid"`}// swagger:parameters addHostToNetwork deleteHostFromNetworktype HostFromNetworkParams struct {	// hostid to add or delete from network	// in: path	HostID string `json:"hostid"`	// network	// in: path	Network string `json:"network"`}// swagger:parameters createEnrollmentKeytype createEnrollmentKeyParams struct {	// APIEnrollmentKey	// in: body	Body models.APIEnrollmentKey `json:"body"`}// swagger:parameters updateEnrollmentKeytype updateEnrollmentKeyParams struct {	// KeyID	// in: path	KeyID string `json:"keyid"`	// APIEnrollmentKey	// in: body	Body models.APIEnrollmentKey `json:"body"`}// swagger:parameters deleteEnrollmentKeytype deleteEnrollmentKeyParam struct {	// in: path	KeyID string `json:"keyid"`}// swagger:parameters handleHostRegistertype RegisterParams struct {	// in: path	Token string `json:"token"`	// in: body	Host models.Host `json:"host"`}// swagger:response serverConfigResponsetype serverConfigResponse struct {	// Server Config	// in: body	// example	//{	//"mqusername": "xxxxxxx"	//}	ServerConfig config.ServerConfig `json:"server_config"`}// swagger:parameters createAdmin updateUser updateUserNetworks createUsertype userBodyParam struct {	// User	// in: body	User models.User `json:"user"`}// swagger:response userBodyResponsetype userBodyResponse struct {	// User	// in: body	User models.User `json:"user"`}// swagger:parameters authenticateUsertype userAuthBodyParam struct {	// User Auth Params	// in: body	UserAuthParams models.UserAuthParams `json:"user_auth_params"`}// swagger:parameters updateUser updateUserNetworks updateUserAdm createUser deleteUser getUsertype usernamePathParam struct {	// Username	// in: path	Username string `json:"username"`}// prevent issues with integration tests for types just used by Swagger docs.func useUnused() bool {	_ = dnsParams{}	_ = dnsResponse{}	_ = dnsDeletePathParams{}	_ = stringJSONResponse{}	_ = getAllClientsRequest{}	_ = extClientSliceResponse{}	_ = extClientResponse{}	_ = successResponse{}	_ = extClientPathParams{}	_ = extClientBodyParam{}	_ = extClientNetworkPathParam{}	_ = createExtClientPathParams{}	_ = networkNodePathParams{}	_ = byteArrayResponse{}	_ = getNetworksSliceResponse{}	_ = networkBodyParam{}	_ = networkPathParam{}	_ = networkBodyResponse{}	_ = aclContainerBodyParam{}	_ = aclContainerResponse{}	_ = nodeSliceResponse{}	_ = nodeResponse{}	_ = nodeBodyParam{}	_ = relayRequestBodyParam{}	_ = egressGatewayBodyParam{}	_ = authParamBodyParam{}	_ = serverConfigResponse{}	_ = userBodyParam{}	_ = userBodyResponse{}	_ = userAuthBodyParam{}	_ = usernamePathParam{}	_ = hasAdmin{}	_ = apiHostResponse{}	_ = fileResponse{}	_ = extClientConfParams{}	_ = hostPull{}	_ = okRespone{}	_ = signal{}	_ = filenameToGet{}	_ = dnsNetworkPathParam{}	_ = createEnrollmentKeyParams{}	_ = updateEnrollmentKeyParams{}	_ = deleteEnrollmentKeyParam{}	return false}
 |