mirror of
https://github.com/gravitl/netmaker.git
synced 2024-11-10 17:48:25 +08:00
3006 lines
93 KiB
YAML
3006 lines
93 KiB
YAML
basePath: /
|
|
consumes:
|
|
- application/json
|
|
definitions:
|
|
ACL:
|
|
additionalProperties:
|
|
format: uint8
|
|
type: integer
|
|
description: ACL - the ACL of other nodes in a NetworkACL for a single unique node
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/logic/acls
|
|
ACLContainer:
|
|
additionalProperties:
|
|
$ref: '#/definitions/ACL'
|
|
description: ACLContainer - the total list of all node's ACL in a given network
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/logic/acls
|
|
APIEnrollmentKey:
|
|
description: APIEnrollmentKey - used to create enrollment keys via API
|
|
properties:
|
|
expiration:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Expiration
|
|
networks:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Networks
|
|
relay:
|
|
type: string
|
|
x-go-name: Relay
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Tags
|
|
type:
|
|
$ref: '#/definitions/KeyType'
|
|
unlimited:
|
|
type: boolean
|
|
x-go-name: Unlimited
|
|
uses_remaining:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: UsesRemaining
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
ApiHost:
|
|
description: ApiHost - the host struct for API usage
|
|
properties:
|
|
autoupdate:
|
|
type: boolean
|
|
x-go-name: AutoUpdate
|
|
debug:
|
|
type: boolean
|
|
x-go-name: Debug
|
|
defaultinterface:
|
|
type: string
|
|
x-go-name: DefaultInterface
|
|
endpointip:
|
|
type: string
|
|
x-go-name: EndpointIP
|
|
endpointipv6:
|
|
type: string
|
|
x-go-name: EndpointIPv6
|
|
firewallinuse:
|
|
type: string
|
|
x-go-name: FirewallInUse
|
|
id:
|
|
type: string
|
|
x-go-name: ID
|
|
interfaces:
|
|
items:
|
|
$ref: '#/definitions/ApiIface'
|
|
type: array
|
|
x-go-name: Interfaces
|
|
isdefault:
|
|
type: boolean
|
|
x-go-name: IsDefault
|
|
isstatic:
|
|
type: boolean
|
|
x-go-name: IsStatic
|
|
listenport:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: ListenPort
|
|
macaddress:
|
|
type: string
|
|
x-go-name: MacAddress
|
|
mtu:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: MTU
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
nat_type:
|
|
type: string
|
|
x-go-name: NatType
|
|
nodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Nodes
|
|
os:
|
|
type: string
|
|
x-go-name: OS
|
|
persistentkeepalive:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: PersistentKeepalive
|
|
publickey:
|
|
type: string
|
|
x-go-name: PublicKey
|
|
verbosity:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Verbosity
|
|
version:
|
|
type: string
|
|
x-go-name: Version
|
|
wg_public_listen_port:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: WgPublicListenPort
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
ApiIface:
|
|
description: |-
|
|
ApiIface - the interface struct for API usage
|
|
The original Iface struct contains a net.Address, which does not get marshalled correctly
|
|
properties:
|
|
addressString:
|
|
type: string
|
|
x-go-name: AddressString
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
ApiNode:
|
|
description: ApiNode is a stripped down Node DTO that exposes only required fields to external systems
|
|
properties:
|
|
address:
|
|
type: string
|
|
x-go-name: Address
|
|
address6:
|
|
type: string
|
|
x-go-name: Address6
|
|
allowedips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: AllowedIPs
|
|
connected:
|
|
type: boolean
|
|
x-go-name: Connected
|
|
defaultacl:
|
|
description: == PRO ==
|
|
type: string
|
|
x-go-name: DefaultACL
|
|
dnson:
|
|
type: boolean
|
|
x-go-name: DNSOn
|
|
egressgatewaynatenabled:
|
|
type: boolean
|
|
x-go-name: EgressGatewayNatEnabled
|
|
egressgatewayranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: EgressGatewayRanges
|
|
expdatetime:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: ExpirationDateTime
|
|
fail_over_peers:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
x-go-name: FailOverPeers
|
|
failed_over_by:
|
|
format: uuid
|
|
type: string
|
|
x-go-name: FailedOverBy
|
|
hostid:
|
|
type: string
|
|
x-go-name: HostID
|
|
id:
|
|
type: string
|
|
x-go-name: ID
|
|
inet_node_req:
|
|
$ref: '#/definitions/InetNodeReq'
|
|
ingressdns:
|
|
type: string
|
|
x-go-name: IngressDns
|
|
internetgw_node_id:
|
|
type: string
|
|
x-go-name: InternetGwID
|
|
is_fail_over:
|
|
type: boolean
|
|
x-go-name: IsFailOver
|
|
isegressgateway:
|
|
type: boolean
|
|
x-go-name: IsEgressGateway
|
|
isingressgateway:
|
|
type: boolean
|
|
x-go-name: IsIngressGateway
|
|
isinternetgateway:
|
|
type: boolean
|
|
x-go-name: IsInternetGateway
|
|
isrelay:
|
|
type: boolean
|
|
x-go-name: IsRelay
|
|
isrelayed:
|
|
type: boolean
|
|
x-go-name: IsRelayed
|
|
lastcheckin:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: LastCheckIn
|
|
lastmodified:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: LastModified
|
|
lastpeerupdate:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: LastPeerUpdate
|
|
localaddress:
|
|
type: string
|
|
x-go-name: LocalAddress
|
|
metadata:
|
|
type: string
|
|
x-go-name: Metadata
|
|
network:
|
|
type: string
|
|
x-go-name: Network
|
|
networkrange:
|
|
type: string
|
|
x-go-name: NetworkRange
|
|
networkrange6:
|
|
type: string
|
|
x-go-name: NetworkRange6
|
|
pendingdelete:
|
|
type: boolean
|
|
x-go-name: PendingDelete
|
|
relayedby:
|
|
type: string
|
|
x-go-name: RelayedBy
|
|
relaynodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: RelayedNodes
|
|
server:
|
|
type: string
|
|
x-go-name: Server
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
AuthParams:
|
|
description: AuthParams - struct for auth params
|
|
properties:
|
|
id:
|
|
type: string
|
|
x-go-name: ID
|
|
macaddress:
|
|
type: string
|
|
x-go-name: MacAddress
|
|
password:
|
|
type: string
|
|
x-go-name: Password
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
CustomExtClient:
|
|
description: CustomExtClient - struct for CustomExtClient params
|
|
properties:
|
|
clientid:
|
|
type: string
|
|
x-go-name: ClientID
|
|
deniednodeacls:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
x-go-name: DeniedACLs
|
|
dns:
|
|
type: string
|
|
x-go-name: DNS
|
|
enabled:
|
|
type: boolean
|
|
x-go-name: Enabled
|
|
extraallowedips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: ExtraAllowedIPs
|
|
postdown:
|
|
type: string
|
|
x-go-name: PostDown
|
|
postup:
|
|
type: string
|
|
x-go-name: PostUp
|
|
publickey:
|
|
type: string
|
|
x-go-name: PublicKey
|
|
remote_access_client_id:
|
|
type: string
|
|
x-go-name: RemoteAccessClientID
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
DNSEntry:
|
|
description: DNSEntry - a DNS entry represented as struct
|
|
properties:
|
|
address:
|
|
type: string
|
|
x-go-name: Address
|
|
address6:
|
|
type: string
|
|
x-go-name: Address6
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
network:
|
|
type: string
|
|
x-go-name: Network
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
Duration:
|
|
description: |-
|
|
A Duration represents the elapsed time between two instants
|
|
as an int64 nanosecond count. The representation limits the
|
|
largest representable duration to approximately 290 years.
|
|
format: int64
|
|
type: integer
|
|
x-go-package: time
|
|
EgressGatewayRequest:
|
|
description: EgressGatewayRequest - egress gateway request
|
|
properties:
|
|
natenabled:
|
|
type: string
|
|
x-go-name: NatEnabled
|
|
netid:
|
|
type: string
|
|
x-go-name: NetID
|
|
nodeid:
|
|
type: string
|
|
x-go-name: NodeID
|
|
ranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Ranges
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
EgressInfo:
|
|
description: EgressInfo - struct for egress info
|
|
properties:
|
|
egress_gateway_cfg:
|
|
$ref: '#/definitions/EgressGatewayRequest'
|
|
egress_gw_addr:
|
|
$ref: '#/definitions/IPNet'
|
|
egress_id:
|
|
type: string
|
|
x-go-name: EgressID
|
|
network:
|
|
$ref: '#/definitions/IPNet'
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
EgressNetworkRoutes:
|
|
description: EgressNetworkRoutes - struct for egress network routes for adding routes to peer's interface
|
|
properties:
|
|
egress_ranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: EgressRanges
|
|
node_addr:
|
|
$ref: '#/definitions/IPNet'
|
|
node_addr6:
|
|
$ref: '#/definitions/IPNet'
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
EnrollmentKey:
|
|
description: EnrollmentKey - the key used to register hosts and join them to specific networks
|
|
properties:
|
|
expiration:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: Expiration
|
|
networks:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Networks
|
|
relay:
|
|
format: uuid
|
|
type: string
|
|
x-go-name: Relay
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Tags
|
|
token:
|
|
type: string
|
|
x-go-name: Token
|
|
type:
|
|
$ref: '#/definitions/KeyType'
|
|
unlimited:
|
|
type: boolean
|
|
x-go-name: Unlimited
|
|
uses_remaining:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: UsesRemaining
|
|
value:
|
|
type: string
|
|
x-go-name: Value
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
ExtClient:
|
|
description: ExtClient - struct for external clients
|
|
properties:
|
|
address:
|
|
type: string
|
|
x-go-name: Address
|
|
address6:
|
|
type: string
|
|
x-go-name: Address6
|
|
allowed_ips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: AllowedIPs
|
|
clientid:
|
|
type: string
|
|
x-go-name: ClientID
|
|
deniednodeacls:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
x-go-name: DeniedACLs
|
|
dns:
|
|
type: string
|
|
x-go-name: DNS
|
|
enabled:
|
|
type: boolean
|
|
x-go-name: Enabled
|
|
extraallowedips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: ExtraAllowedIPs
|
|
ingressgatewayendpoint:
|
|
type: string
|
|
x-go-name: IngressGatewayEndpoint
|
|
ingressgatewayid:
|
|
type: string
|
|
x-go-name: IngressGatewayID
|
|
lastmodified:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: LastModified
|
|
network:
|
|
type: string
|
|
x-go-name: Network
|
|
ownerid:
|
|
type: string
|
|
x-go-name: OwnerID
|
|
postdown:
|
|
type: string
|
|
x-go-name: PostDown
|
|
postup:
|
|
type: string
|
|
x-go-name: PostUp
|
|
privatekey:
|
|
type: string
|
|
x-go-name: PrivateKey
|
|
publickey:
|
|
type: string
|
|
x-go-name: PublicKey
|
|
remote_access_client_id:
|
|
type: string
|
|
x-go-name: RemoteAccessClientID
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
File:
|
|
title: File represents an open file descriptor.
|
|
type: object
|
|
x-go-package: os
|
|
FwUpdate:
|
|
description: FwUpdate - struct for firewall updates
|
|
properties:
|
|
egress_info:
|
|
additionalProperties:
|
|
$ref: '#/definitions/EgressInfo'
|
|
type: object
|
|
x-go-name: EgressInfo
|
|
is_egress_gw:
|
|
type: boolean
|
|
x-go-name: IsEgressGw
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
HardwareAddr:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
title: A HardwareAddr represents a physical hardware address.
|
|
type: array
|
|
x-go-package: net
|
|
Host:
|
|
description: Host - represents a host on the network
|
|
properties:
|
|
autoupdate:
|
|
type: boolean
|
|
x-go-name: AutoUpdate
|
|
daemoninstalled:
|
|
type: boolean
|
|
x-go-name: DaemonInstalled
|
|
debug:
|
|
type: boolean
|
|
x-go-name: Debug
|
|
defaultinterface:
|
|
type: string
|
|
x-go-name: DefaultInterface
|
|
endpointip:
|
|
type: string
|
|
x-go-name: EndpointIP
|
|
endpointipv6:
|
|
type: string
|
|
x-go-name: EndpointIPv6
|
|
firewallinuse:
|
|
type: string
|
|
x-go-name: FirewallInUse
|
|
hostpass:
|
|
type: string
|
|
x-go-name: HostPass
|
|
id:
|
|
format: uuid
|
|
type: string
|
|
x-go-name: ID
|
|
interface:
|
|
type: string
|
|
x-go-name: Interface
|
|
interfaces:
|
|
items:
|
|
$ref: '#/definitions/Iface'
|
|
type: array
|
|
x-go-name: Interfaces
|
|
ipforwarding:
|
|
type: boolean
|
|
x-go-name: IPForwarding
|
|
isdefault:
|
|
type: boolean
|
|
x-go-name: IsDefault
|
|
isdocker:
|
|
type: boolean
|
|
x-go-name: IsDocker
|
|
isk8s:
|
|
type: boolean
|
|
x-go-name: IsK8S
|
|
isstatic:
|
|
type: boolean
|
|
x-go-name: IsStatic
|
|
listenport:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: ListenPort
|
|
macaddress:
|
|
$ref: '#/definitions/HardwareAddr'
|
|
mtu:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: MTU
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
nat_type:
|
|
type: string
|
|
x-go-name: NatType
|
|
nodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Nodes
|
|
os:
|
|
type: string
|
|
x-go-name: OS
|
|
persistentkeepalive:
|
|
$ref: '#/definitions/Duration'
|
|
publickey:
|
|
$ref: '#/definitions/Key'
|
|
traffickeypublic:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
x-go-name: TrafficKeyPublic
|
|
turn_endpoint:
|
|
type: string
|
|
x-go-name: TurnEndpoint
|
|
verbosity:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Verbosity
|
|
version:
|
|
type: string
|
|
x-go-name: Version
|
|
wg_public_listen_port:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: WgPublicListenPort
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
HostInfoMap:
|
|
additionalProperties:
|
|
$ref: '#/definitions/HostNetworkInfo'
|
|
description: HostInfoMap - map of host public keys to host networking info
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
HostNetworkInfo:
|
|
description: HostNetworkInfo - holds info related to host networking (used for client side peer calculations)
|
|
properties:
|
|
interfaces:
|
|
items:
|
|
$ref: '#/definitions/Iface'
|
|
type: array
|
|
x-go-name: Interfaces
|
|
is_static:
|
|
type: boolean
|
|
x-go-name: IsStatic
|
|
listen_port:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: ListenPort
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
HostPull:
|
|
description: HostPull - response of a host's pull
|
|
properties:
|
|
change_default_gw:
|
|
type: boolean
|
|
x-go-name: ChangeDefaultGw
|
|
default_gw_ip:
|
|
type: string
|
|
x-go-name: DefaultGwIp
|
|
egress_network_routes:
|
|
items:
|
|
$ref: '#/definitions/EgressNetworkRoutes'
|
|
type: array
|
|
x-go-name: EgressRoutes
|
|
endpoint_detection:
|
|
type: boolean
|
|
x-go-name: EndpointDetection
|
|
fw_update:
|
|
$ref: '#/definitions/FwUpdate'
|
|
host:
|
|
$ref: '#/definitions/Host'
|
|
host_network_info:
|
|
$ref: '#/definitions/HostInfoMap'
|
|
is_inet_gw:
|
|
type: boolean
|
|
x-go-name: IsInternetGw
|
|
nodes:
|
|
items:
|
|
$ref: '#/definitions/Node'
|
|
type: array
|
|
x-go-name: Nodes
|
|
peer_ids:
|
|
$ref: '#/definitions/PeerMap'
|
|
peers:
|
|
items:
|
|
$ref: '#/definitions/PeerConfig'
|
|
type: array
|
|
x-go-name: Peers
|
|
server_config:
|
|
$ref: '#/definitions/ServerConfig'
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
IDandAddr:
|
|
description: IDandAddr - struct to hold ID and primary Address
|
|
properties:
|
|
address:
|
|
type: string
|
|
x-go-name: Address
|
|
host_id:
|
|
type: string
|
|
x-go-name: HostID
|
|
id:
|
|
type: string
|
|
x-go-name: ID
|
|
is_extclient:
|
|
type: boolean
|
|
x-go-name: IsExtClient
|
|
isserver:
|
|
type: string
|
|
x-go-name: IsServer
|
|
listen_port:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: ListenPort
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
network:
|
|
type: string
|
|
x-go-name: Network
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
IPMask:
|
|
description: See type IPNet and func ParseCIDR for details.
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
title: |-
|
|
An IPMask is a bitmask that can be used to manipulate
|
|
IP addresses for IP addressing and routing.
|
|
type: array
|
|
x-go-package: net
|
|
IPNet:
|
|
properties:
|
|
IP:
|
|
type: string
|
|
Mask:
|
|
$ref: '#/definitions/IPMask'
|
|
title: An IPNet represents an IP network.
|
|
type: object
|
|
x-go-package: net
|
|
Iface:
|
|
description: Iface struct for local interfaces of a node
|
|
properties:
|
|
address:
|
|
$ref: '#/definitions/IPNet'
|
|
addressString:
|
|
type: string
|
|
x-go-name: AddressString
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
InetNodeReq:
|
|
description: InetNodeReq - exit node request struct
|
|
properties:
|
|
inet_node_client_ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: InetNodeClientIDs
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
Key:
|
|
description: |-
|
|
A Key is a public, private, or pre-shared secret key. The Key constructor
|
|
functions in this package can be used to create Keys suitable for each of
|
|
these applications.
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
x-go-package: golang.zx2c4.com/wireguard/wgctrl/wgtypes
|
|
KeyType:
|
|
description: KeyType - the type of enrollment key
|
|
format: int64
|
|
type: integer
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
LegacyNode:
|
|
description: LegacyNode - legacy struct for node model
|
|
properties:
|
|
accesskey:
|
|
type: string
|
|
x-go-name: AccessKey
|
|
action:
|
|
type: string
|
|
x-go-name: Action
|
|
address:
|
|
type: string
|
|
x-go-name: Address
|
|
address6:
|
|
type: string
|
|
x-go-name: Address6
|
|
allowedips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: AllowedIPs
|
|
connected:
|
|
type: string
|
|
x-go-name: Connected
|
|
defaultacl:
|
|
description: == PRO ==
|
|
type: string
|
|
x-go-name: DefaultACL
|
|
dnson:
|
|
type: string
|
|
x-go-name: DNSOn
|
|
egressgatewaynatenabled:
|
|
type: string
|
|
x-go-name: EgressGatewayNatEnabled
|
|
egressgatewayranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: EgressGatewayRanges
|
|
egressgatewayrequest:
|
|
$ref: '#/definitions/EgressGatewayRequest'
|
|
endpoint:
|
|
type: string
|
|
x-go-name: Endpoint
|
|
expdatetime:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: ExpirationDateTime
|
|
failover:
|
|
type: string
|
|
x-go-name: Failover
|
|
failovernode:
|
|
type: string
|
|
x-go-name: FailoverNode
|
|
firewallinuse:
|
|
type: string
|
|
x-go-name: FirewallInUse
|
|
id:
|
|
type: string
|
|
x-go-name: ID
|
|
ingressgatewayrange:
|
|
type: string
|
|
x-go-name: IngressGatewayRange
|
|
ingressgatewayrange6:
|
|
type: string
|
|
x-go-name: IngressGatewayRange6
|
|
interface:
|
|
type: string
|
|
x-go-name: Interface
|
|
interfaces:
|
|
items:
|
|
$ref: '#/definitions/Iface'
|
|
type: array
|
|
x-go-name: Interfaces
|
|
internetgateway:
|
|
type: string
|
|
x-go-name: InternetGateway
|
|
ipforwarding:
|
|
type: string
|
|
x-go-name: IPForwarding
|
|
isdocker:
|
|
type: string
|
|
x-go-name: IsDocker
|
|
isegressgateway:
|
|
type: string
|
|
x-go-name: IsEgressGateway
|
|
ishub:
|
|
type: string
|
|
x-go-name: IsHub
|
|
isingressgateway:
|
|
type: string
|
|
x-go-name: IsIngressGateway
|
|
isk8s:
|
|
type: string
|
|
x-go-name: IsK8S
|
|
ispending:
|
|
type: string
|
|
x-go-name: IsPending
|
|
isrelay:
|
|
type: string
|
|
x-go-name: IsRelay
|
|
isrelayed:
|
|
type: string
|
|
x-go-name: IsRelayed
|
|
isserver:
|
|
type: string
|
|
x-go-name: IsServer
|
|
isstatic:
|
|
description: IsStatic - refers to if the Endpoint is set manually or dynamically
|
|
type: string
|
|
x-go-name: IsStatic
|
|
lastcheckin:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: LastCheckIn
|
|
lastmodified:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: LastModified
|
|
lastpeerupdate:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: LastPeerUpdate
|
|
listenport:
|
|
format: int32
|
|
type: integer
|
|
x-go-name: ListenPort
|
|
localaddress:
|
|
type: string
|
|
x-go-name: LocalAddress
|
|
locallistenport:
|
|
format: int32
|
|
type: integer
|
|
x-go-name: LocalListenPort
|
|
macaddress:
|
|
type: string
|
|
x-go-name: MacAddress
|
|
mtu:
|
|
format: int32
|
|
type: integer
|
|
x-go-name: MTU
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
network:
|
|
type: string
|
|
x-go-name: Network
|
|
networksettings:
|
|
$ref: '#/definitions/Network'
|
|
os:
|
|
type: string
|
|
x-go-name: OS
|
|
ownerid:
|
|
type: string
|
|
x-go-name: OwnerID
|
|
password:
|
|
type: string
|
|
x-go-name: Password
|
|
persistentkeepalive:
|
|
format: int32
|
|
type: integer
|
|
x-go-name: PersistentKeepalive
|
|
publickey:
|
|
type: string
|
|
x-go-name: PublicKey
|
|
relayaddrs:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: RelayAddrs
|
|
server:
|
|
type: string
|
|
x-go-name: Server
|
|
traffickeys:
|
|
$ref: '#/definitions/TrafficKeys'
|
|
udpholepunch:
|
|
type: string
|
|
x-go-name: UDPHolePunch
|
|
version:
|
|
type: string
|
|
x-go-name: Version
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
Network:
|
|
description: |-
|
|
Network Struct - contains info for a given unique network
|
|
At some point, need to replace all instances of Name with something else like Identifier
|
|
properties:
|
|
addressrange:
|
|
type: string
|
|
x-go-name: AddressRange
|
|
addressrange6:
|
|
type: string
|
|
x-go-name: AddressRange6
|
|
allowmanualsignup:
|
|
type: string
|
|
x-go-name: AllowManualSignUp
|
|
defaultacl:
|
|
type: string
|
|
x-go-name: DefaultACL
|
|
defaultinterface:
|
|
type: string
|
|
x-go-name: DefaultInterface
|
|
defaultkeepalive:
|
|
format: int32
|
|
type: integer
|
|
x-go-name: DefaultKeepalive
|
|
defaultlistenport:
|
|
format: int32
|
|
type: integer
|
|
x-go-name: DefaultListenPort
|
|
defaultmtu:
|
|
format: int32
|
|
type: integer
|
|
x-go-name: DefaultMTU
|
|
defaultpostdown:
|
|
type: string
|
|
x-go-name: DefaultPostDown
|
|
defaultudpholepunch:
|
|
type: string
|
|
x-go-name: DefaultUDPHolePunch
|
|
isipv4:
|
|
type: string
|
|
x-go-name: IsIPv4
|
|
isipv6:
|
|
type: string
|
|
x-go-name: IsIPv6
|
|
netid:
|
|
type: string
|
|
x-go-name: NetID
|
|
networklastmodified:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: NetworkLastModified
|
|
nodelimit:
|
|
format: int32
|
|
type: integer
|
|
x-go-name: NodeLimit
|
|
nodeslastmodified:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: NodesLastModified
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
Node:
|
|
description: Node - a model of a network node
|
|
properties:
|
|
action:
|
|
type: string
|
|
x-go-name: Action
|
|
address:
|
|
$ref: '#/definitions/IPNet'
|
|
address6:
|
|
$ref: '#/definitions/IPNet'
|
|
connected:
|
|
type: boolean
|
|
x-go-name: Connected
|
|
defaultacl:
|
|
description: == PRO ==
|
|
type: string
|
|
x-go-name: DefaultACL
|
|
dnson:
|
|
type: boolean
|
|
x-go-name: DNSOn
|
|
egressgatewaynatenabled:
|
|
type: boolean
|
|
x-go-name: EgressGatewayNatEnabled
|
|
egressgatewayranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: EgressGatewayRanges
|
|
egressgatewayrequest:
|
|
$ref: '#/definitions/EgressGatewayRequest'
|
|
expdatetime:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: ExpirationDateTime
|
|
fail_over_peers:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
x-go-name: FailOverPeers
|
|
failed_over_by:
|
|
format: uuid
|
|
type: string
|
|
x-go-name: FailedOverBy
|
|
hostid:
|
|
format: uuid
|
|
type: string
|
|
x-go-name: HostID
|
|
id:
|
|
format: uuid
|
|
type: string
|
|
x-go-name: ID
|
|
inet_node_req:
|
|
$ref: '#/definitions/InetNodeReq'
|
|
ingressdns:
|
|
type: string
|
|
x-go-name: IngressDNS
|
|
ingressgatewayrange:
|
|
type: string
|
|
x-go-name: IngressGatewayRange
|
|
ingressgatewayrange6:
|
|
type: string
|
|
x-go-name: IngressGatewayRange6
|
|
internetgw_node_id:
|
|
type: string
|
|
x-go-name: InternetGwID
|
|
is_fail_over:
|
|
type: boolean
|
|
x-go-name: IsFailOver
|
|
isegressgateway:
|
|
type: boolean
|
|
x-go-name: IsEgressGateway
|
|
isingressgateway:
|
|
type: boolean
|
|
x-go-name: IsIngressGateway
|
|
isinternetgateway:
|
|
type: boolean
|
|
x-go-name: IsInternetGateway
|
|
isrelay:
|
|
type: boolean
|
|
x-go-name: IsRelay
|
|
isrelayed:
|
|
type: boolean
|
|
x-go-name: IsRelayed
|
|
lastcheckin:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: LastCheckIn
|
|
lastmodified:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: LastModified
|
|
lastpeerupdate:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: LastPeerUpdate
|
|
localaddress:
|
|
$ref: '#/definitions/IPNet'
|
|
metadata:
|
|
type: string
|
|
x-go-name: Metadata
|
|
network:
|
|
type: string
|
|
x-go-name: Network
|
|
networkrange:
|
|
$ref: '#/definitions/IPNet'
|
|
networkrange6:
|
|
$ref: '#/definitions/IPNet'
|
|
ownerid:
|
|
type: string
|
|
x-go-name: OwnerID
|
|
pendingdelete:
|
|
type: boolean
|
|
x-go-name: PendingDelete
|
|
relayedby:
|
|
type: string
|
|
x-go-name: RelayedBy
|
|
relaynodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: RelayedNodes
|
|
server:
|
|
type: string
|
|
x-go-name: Server
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
PeerConfig:
|
|
description: |-
|
|
Because the zero value of some Go types may be significant to WireGuard for
|
|
PeerConfig fields, pointer types are used for some of these fields. Only
|
|
pointer fields which are not nil will be applied when configuring a peer.
|
|
properties:
|
|
AllowedIPs:
|
|
description: |-
|
|
AllowedIPs specifies a list of allowed IP addresses in CIDR notation
|
|
for this peer.
|
|
items:
|
|
$ref: '#/definitions/IPNet'
|
|
type: array
|
|
Endpoint:
|
|
$ref: '#/definitions/UDPAddr'
|
|
PersistentKeepaliveInterval:
|
|
$ref: '#/definitions/Duration'
|
|
PresharedKey:
|
|
$ref: '#/definitions/Key'
|
|
PublicKey:
|
|
$ref: '#/definitions/Key'
|
|
Remove:
|
|
description: |-
|
|
Remove specifies if the peer with this public key should be removed
|
|
from a device's peer list.
|
|
type: boolean
|
|
ReplaceAllowedIPs:
|
|
description: |-
|
|
ReplaceAllowedIPs specifies if the allowed IPs specified in this peer
|
|
configuration should replace any existing ones, instead of appending them
|
|
to the allowed IPs list.
|
|
type: boolean
|
|
UpdateOnly:
|
|
description: |-
|
|
UpdateOnly specifies that an operation will only occur on this peer
|
|
if the peer already exists as part of the interface.
|
|
type: boolean
|
|
title: A PeerConfig is a WireGuard device peer configuration.
|
|
type: object
|
|
x-go-package: golang.zx2c4.com/wireguard/wgctrl/wgtypes
|
|
PeerMap:
|
|
additionalProperties:
|
|
$ref: '#/definitions/IDandAddr'
|
|
description: PeerMap - peer map for ids and addresses in metrics
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
RegisterResponse:
|
|
description: RegisterResponse - the response to a successful enrollment register
|
|
properties:
|
|
requested_host:
|
|
$ref: '#/definitions/Host'
|
|
server_config:
|
|
$ref: '#/definitions/ServerConfig'
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
RelayRequest:
|
|
description: RelayRequest - relay request struct
|
|
properties:
|
|
netid:
|
|
type: string
|
|
x-go-name: NetID
|
|
nodeid:
|
|
type: string
|
|
x-go-name: NodeID
|
|
relayaddrs:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: RelayedNodes
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
ServerConfig:
|
|
description: ServerConfig - server conf struct
|
|
properties:
|
|
APIConnString:
|
|
type: string
|
|
APIHost:
|
|
type: string
|
|
APIPort:
|
|
type: string
|
|
AllowedEmailDomains:
|
|
type: string
|
|
AllowedOrigin:
|
|
type: string
|
|
AuthProvider:
|
|
type: string
|
|
AzureTenant:
|
|
type: string
|
|
BasicAuth:
|
|
type: string
|
|
Broker:
|
|
type: string
|
|
BrokerType:
|
|
type: string
|
|
CacheEnabled:
|
|
type: string
|
|
ClientID:
|
|
type: string
|
|
ClientSecret:
|
|
type: string
|
|
CoreDNSAddr:
|
|
type: string
|
|
DNSKey:
|
|
type: string
|
|
DNSMode:
|
|
type: string
|
|
Database:
|
|
type: string
|
|
DeployedByOperator:
|
|
type: boolean
|
|
DisableRemoteIPCheck:
|
|
type: string
|
|
DisplayKeys:
|
|
type: string
|
|
EgressesLimit:
|
|
format: int64
|
|
type: integer
|
|
EmqxRestEndpoint:
|
|
type: string
|
|
Environment:
|
|
type: string
|
|
FrontendURL:
|
|
type: string
|
|
HostNetwork:
|
|
type: string
|
|
IngressesLimit:
|
|
format: int64
|
|
type: integer
|
|
IsEE:
|
|
type: string
|
|
x-go-name: IsPro
|
|
JwtValidityDuration:
|
|
$ref: '#/definitions/Duration'
|
|
LicenseValue:
|
|
type: string
|
|
MQPassword:
|
|
type: string
|
|
MQUserName:
|
|
type: string
|
|
MachinesLimit:
|
|
format: int64
|
|
type: integer
|
|
MasterKey:
|
|
type: string
|
|
MessageQueueBackend:
|
|
type: string
|
|
MetricsExporter:
|
|
type: string
|
|
NetclientAutoUpdate:
|
|
type: string
|
|
NetclientEndpointDetection:
|
|
type: string
|
|
NetmakerTenantID:
|
|
type: string
|
|
NetworksLimit:
|
|
format: int64
|
|
type: integer
|
|
NodeID:
|
|
type: string
|
|
OIDCIssuer:
|
|
type: string
|
|
Platform:
|
|
type: string
|
|
PublicIPService:
|
|
type: string
|
|
RacAutoDisable:
|
|
type: boolean
|
|
RestBackend:
|
|
type: string
|
|
SQLConn:
|
|
type: string
|
|
Server:
|
|
type: string
|
|
ServerBrokerEndpoint:
|
|
type: string
|
|
StunList:
|
|
type: string
|
|
StunPort:
|
|
format: int64
|
|
type: integer
|
|
Telemetry:
|
|
type: string
|
|
TurnApiServer:
|
|
type: string
|
|
TurnPassword:
|
|
type: string
|
|
TurnPort:
|
|
format: int64
|
|
type: integer
|
|
TurnServer:
|
|
type: string
|
|
TurnUserName:
|
|
type: string
|
|
UseTurn:
|
|
type: boolean
|
|
UsersLimit:
|
|
format: int64
|
|
type: integer
|
|
Verbosity:
|
|
format: int32
|
|
type: integer
|
|
Version:
|
|
type: string
|
|
endpoint_detection:
|
|
type: boolean
|
|
x-go-name: EndpointDetection
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/config
|
|
Signal:
|
|
description: Signal - struct for signalling peer
|
|
properties:
|
|
action:
|
|
$ref: '#/definitions/SignalAction'
|
|
from_host_id:
|
|
type: string
|
|
x-go-name: FromHostID
|
|
from_host_pubkey:
|
|
type: string
|
|
x-go-name: FromHostPubKey
|
|
from_node_id:
|
|
type: string
|
|
x-go-name: FromNodeID
|
|
is_pro:
|
|
type: boolean
|
|
x-go-name: IsPro
|
|
reply:
|
|
type: boolean
|
|
x-go-name: Reply
|
|
server:
|
|
type: string
|
|
x-go-name: Server
|
|
timestamp:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: TimeStamp
|
|
to_host_id:
|
|
type: string
|
|
x-go-name: ToHostID
|
|
to_host_pubkey:
|
|
type: string
|
|
x-go-name: ToHostPubKey
|
|
to_node_id:
|
|
type: string
|
|
x-go-name: ToNodeID
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
SignalAction:
|
|
description: SignalAction - turn peer signal action
|
|
type: string
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
SuccessResponse:
|
|
properties:
|
|
Code:
|
|
format: int64
|
|
type: integer
|
|
Message:
|
|
type: string
|
|
Response: {}
|
|
title: SuccessResponse is struct for sending error message with code.
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
TrafficKeys:
|
|
description: TrafficKeys - struct to hold public keys
|
|
properties:
|
|
mine:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
x-go-name: Mine
|
|
server:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
x-go-name: Server
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
UDPAddr:
|
|
properties:
|
|
IP:
|
|
type: string
|
|
Port:
|
|
format: int64
|
|
type: integer
|
|
Zone:
|
|
type: string
|
|
title: UDPAddr represents the address of a UDP end point.
|
|
type: object
|
|
x-go-package: net
|
|
User:
|
|
description: User struct - struct for Users
|
|
properties:
|
|
isadmin:
|
|
type: boolean
|
|
x-go-name: IsAdmin
|
|
issuperadmin:
|
|
type: boolean
|
|
x-go-name: IsSuperAdmin
|
|
last_login_time:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: LastLoginTime
|
|
password:
|
|
type: string
|
|
x-go-name: Password
|
|
remote_gw_ids:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
x-go-name: RemoteGwIDs
|
|
username:
|
|
type: string
|
|
x-go-name: UserName
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
UserAuthParams:
|
|
description: UserAuthParams - user auth params struct
|
|
properties:
|
|
password:
|
|
type: string
|
|
x-go-name: Password
|
|
username:
|
|
type: string
|
|
x-go-name: UserName
|
|
type: object
|
|
x-go-package: github.com/gravitl/netmaker/models
|
|
host: api.demo.netmaker.io
|
|
info:
|
|
description: |-
|
|
# 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.
|
|
title: Netmaker
|
|
version: 0.24.2
|
|
paths:
|
|
/api/dns:
|
|
get:
|
|
operationId: getAllDNS
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/dnsResponse'
|
|
schemes:
|
|
- https
|
|
summary: Gets all DNS entries.
|
|
tags:
|
|
- dns
|
|
/api/dns/{network}:
|
|
post:
|
|
operationId: createDNS
|
|
parameters:
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- description: DNS Entry
|
|
in: body
|
|
name: body
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/DNSEntry'
|
|
type: array
|
|
x-go-name: Body
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/dnsResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create a DNS entry.
|
|
tags:
|
|
- dns
|
|
/api/dns/{network}/{domain}:
|
|
delete:
|
|
operationId: deleteDNS
|
|
parameters:
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- description: Domain
|
|
in: path
|
|
name: domain
|
|
required: true
|
|
type: string
|
|
x-go-name: Domain
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/stringJSONResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete a DNS entry.
|
|
tags:
|
|
- dns
|
|
/api/dns/adm/{network}:
|
|
get:
|
|
operationId: getDNS
|
|
parameters:
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/dnsResponse'
|
|
schemes:
|
|
- https
|
|
summary: Gets all DNS entries associated with the network.
|
|
tags:
|
|
- dns
|
|
/api/dns/adm/{network}/custom:
|
|
get:
|
|
operationId: getCustomDNS
|
|
parameters:
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/dnsResponse'
|
|
schemes:
|
|
- https
|
|
summary: Gets custom DNS entries associated with a network.
|
|
tags:
|
|
- dns
|
|
/api/dns/adm/{network}/nodes:
|
|
get:
|
|
operationId: getNodeDNS
|
|
parameters:
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/dnsResponse'
|
|
schemes:
|
|
- https
|
|
summary: Gets node DNS entries associated with a network.
|
|
tags:
|
|
- dns
|
|
/api/dns/adm/pushdns:
|
|
post:
|
|
operationId: pushDNS
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/dnsResponse'
|
|
schemes:
|
|
- https
|
|
summary: Push DNS entries to nameserver.
|
|
tags:
|
|
- dns
|
|
/api/emqx/hosts:
|
|
delete:
|
|
operationId: delEmqxHosts
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/apiHostResponse'
|
|
schemes:
|
|
- https
|
|
summary: Lists all hosts.
|
|
tags:
|
|
- hosts
|
|
/api/extclients:
|
|
get:
|
|
operationId: getAllExtClients
|
|
parameters:
|
|
- description: Networks
|
|
in: body
|
|
name: networks
|
|
schema:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Networks
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/extClientSliceResponse'
|
|
schemes:
|
|
- https
|
|
summary: A separate function to get all extclients, not just extclients for a particular network.
|
|
tags:
|
|
- ext_client
|
|
/api/extclients/{network}:
|
|
get:
|
|
description: Gets all extclients associated with network, including pending extclients.
|
|
operationId: getNetworkExtClients
|
|
parameters:
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/extClientSliceResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get all extclients associated with network.
|
|
tags:
|
|
- ext_client
|
|
/api/extclients/{network}/{clientid}:
|
|
delete:
|
|
operationId: deleteExtClient
|
|
parameters:
|
|
- description: Client ID
|
|
in: path
|
|
name: clientid
|
|
required: true
|
|
type: string
|
|
x-go-name: ClientID
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/successResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete an individual extclient.
|
|
tags:
|
|
- ext_client
|
|
get:
|
|
operationId: getExtClient
|
|
parameters:
|
|
- description: Client ID
|
|
in: path
|
|
name: clientid
|
|
required: true
|
|
type: string
|
|
x-go-name: ClientID
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/extClientResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get an individual extclient.
|
|
tags:
|
|
- ext_client
|
|
put:
|
|
operationId: updateExtClient
|
|
parameters:
|
|
- description: Client ID
|
|
in: path
|
|
name: clientid
|
|
required: true
|
|
type: string
|
|
x-go-name: ClientID
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- description: ExtClient
|
|
in: body
|
|
name: ext_client
|
|
schema:
|
|
$ref: '#/definitions/ExtClient'
|
|
x-go-name: ExtClient
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/extClientResponse'
|
|
schemes:
|
|
- https
|
|
summary: Update an individual extclient.
|
|
tags:
|
|
- ext_client
|
|
/api/extclients/{network}/{clientid}/{type}:
|
|
get:
|
|
operationId: getExtClientConf
|
|
parameters:
|
|
- description: Type
|
|
in: path
|
|
name: type
|
|
required: true
|
|
type: string
|
|
x-go-name: Type
|
|
- description: Client ID
|
|
in: path
|
|
name: clientid
|
|
required: true
|
|
type: string
|
|
x-go-name: ClientID
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/extClientResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get an individual extclient.
|
|
tags:
|
|
- ext_client
|
|
/api/extclients/{network}/{nodeid}:
|
|
post:
|
|
operationId: createExtClient
|
|
parameters:
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
- description: Custom ExtClient
|
|
in: body
|
|
name: custom_ext_client
|
|
schema:
|
|
$ref: '#/definitions/CustomExtClient'
|
|
x-go-name: CustomExtClient
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/okResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create an individual extclient. Must have valid key and be unique.
|
|
tags:
|
|
- ext_client
|
|
/api/getip:
|
|
get:
|
|
operationId: getPublicIP
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/byteArrayResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get the current public IP address.
|
|
tags:
|
|
- ipservice
|
|
/api/hosts:
|
|
get:
|
|
operationId: getHosts
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/apiHostSliceResponse'
|
|
schemes:
|
|
- https
|
|
summary: Lists all hosts.
|
|
tags:
|
|
- hosts
|
|
/api/hosts/{hostid}:
|
|
delete:
|
|
operationId: deleteHost
|
|
parameters:
|
|
- description: HostID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
x-go-name: HostID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/apiHostResponse'
|
|
schemes:
|
|
- https
|
|
summary: Deletes a Netclient host from Netmaker server.
|
|
tags:
|
|
- hosts
|
|
put:
|
|
operationId: updateHost
|
|
parameters:
|
|
- description: HostID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
x-go-name: HostID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/apiHostResponse'
|
|
schemes:
|
|
- https
|
|
summary: Updates a Netclient host on Netmaker server.
|
|
tags:
|
|
- hosts
|
|
/api/hosts/{hostid}/networks/{network}:
|
|
delete:
|
|
operationId: deleteHostFromNetwork
|
|
parameters:
|
|
- description: hostid to add or delete from network
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
x-go-name: HostID
|
|
- description: network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/okResponse'
|
|
schemes:
|
|
- https
|
|
summary: Given a network, a host is removed from the network.
|
|
tags:
|
|
- hosts
|
|
post:
|
|
operationId: addHostToNetwork
|
|
parameters:
|
|
- description: hostid to add or delete from network
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
x-go-name: HostID
|
|
- description: network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/okResponse'
|
|
schemes:
|
|
- https
|
|
summary: Given a network, a host is added to the network.
|
|
tags:
|
|
- hosts
|
|
/api/hosts/{hostid}/signalpeer:
|
|
post:
|
|
operationId: signalPeer
|
|
parameters:
|
|
- description: HostID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
x-go-name: HostID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/signal'
|
|
schemes:
|
|
- https
|
|
summary: send signal to peer.
|
|
tags:
|
|
- hosts
|
|
/api/hosts/{hostid}/sync:
|
|
post:
|
|
operationId: synchost
|
|
parameters:
|
|
- description: HostID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
x-go-name: HostID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/networkBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Requests a host to pull.
|
|
tags:
|
|
- hosts
|
|
/api/hosts/{hostid}keys:
|
|
post:
|
|
operationId: updateKeys
|
|
parameters:
|
|
- description: HostID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
x-go-name: HostID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/networkBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Update keys for a network.
|
|
tags:
|
|
- hosts
|
|
/api/hosts/adm/authenticate:
|
|
post:
|
|
operationId: authenticateHost
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/successResponse'
|
|
schemes:
|
|
- https
|
|
summary: Host based authentication for making further API calls.
|
|
tags:
|
|
- authenticate
|
|
/api/hosts/keys:
|
|
post:
|
|
operationId: updateAllKeys
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/networkBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Update keys for a network.
|
|
tags:
|
|
- hosts
|
|
/api/networks:
|
|
get:
|
|
operationId: getNetworks
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/getNetworksSliceResponse'
|
|
schemes:
|
|
- https
|
|
summary: Lists all networks.
|
|
tags:
|
|
- networks
|
|
post:
|
|
operationId: createNetwork
|
|
parameters:
|
|
- description: Network
|
|
in: body
|
|
name: network
|
|
schema:
|
|
$ref: '#/definitions/Network'
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/networkBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create a network.
|
|
tags:
|
|
- networks
|
|
/api/networks/{networkname}:
|
|
delete:
|
|
operationId: deleteNetwork
|
|
parameters:
|
|
- description: 'name: network name'
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
x-go-name: Networkname
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/successResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete a network. Will not delete if there are any nodes that belong to the network.
|
|
tags:
|
|
- networks
|
|
get:
|
|
operationId: getNetwork
|
|
parameters:
|
|
- description: 'name: network name'
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
x-go-name: Networkname
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/networkBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get a network.
|
|
tags:
|
|
- networks
|
|
put:
|
|
operationId: updateNetwork
|
|
parameters:
|
|
- description: 'name: network name'
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
x-go-name: Networkname
|
|
- description: Network
|
|
in: body
|
|
name: network
|
|
schema:
|
|
$ref: '#/definitions/Network'
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/networkBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Update pro settings for a network.
|
|
tags:
|
|
- networks
|
|
/api/networks/{networkname}/acls:
|
|
get:
|
|
operationId: getNetworkACL
|
|
parameters:
|
|
- description: 'name: network name'
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
x-go-name: Networkname
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/aclContainerResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get a network ACL (Access Control List).
|
|
tags:
|
|
- networks
|
|
put:
|
|
operationId: updateNetworkACL
|
|
parameters:
|
|
- description: 'name: network name'
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
x-go-name: Networkname
|
|
- description: ACL Container
|
|
in: body
|
|
name: acl_container
|
|
schema:
|
|
$ref: '#/definitions/ACLContainer'
|
|
x-go-name: ACLContainer
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/aclContainerResponse'
|
|
schemes:
|
|
- https
|
|
summary: Update a network ACL (Access Control List).
|
|
tags:
|
|
- networks
|
|
/api/networks/{networkname}/acls/v2:
|
|
put:
|
|
operationId: updateNetworkACL
|
|
parameters:
|
|
- description: 'name: network name'
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
x-go-name: Networkname
|
|
- description: ACL Container
|
|
in: body
|
|
name: acl_container
|
|
schema:
|
|
$ref: '#/definitions/ACLContainer'
|
|
x-go-name: ACLContainer
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/aclContainerResponse'
|
|
schemes:
|
|
- https
|
|
summary: Update a network ACL (Access Control List).
|
|
tags:
|
|
- networks
|
|
/api/node/{nodeid}/failOverME:
|
|
post:
|
|
operationId: failOver_me
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create a relay.
|
|
tags:
|
|
- node
|
|
/api/nodes:
|
|
get:
|
|
operationId: getAllNodes
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeSliceResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get all nodes across all networks.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}:
|
|
get:
|
|
operationId: getNetworkNodes
|
|
parameters:
|
|
- description: Network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeSliceResponse'
|
|
schemes:
|
|
- https
|
|
summary: Gets all nodes associated with network including pending nodes.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}:
|
|
delete:
|
|
operationId: deleteNode
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
- description: Node
|
|
in: body
|
|
name: node
|
|
schema:
|
|
$ref: '#/definitions/LegacyNode'
|
|
x-go-name: Node
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete an individual node.
|
|
tags:
|
|
- nodes
|
|
get:
|
|
operationId: getNode
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get an individual node.
|
|
tags:
|
|
- nodes
|
|
put:
|
|
operationId: updateNode
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
- description: Node
|
|
in: body
|
|
name: node
|
|
schema:
|
|
$ref: '#/definitions/LegacyNode'
|
|
x-go-name: Node
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Update an individual node.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}/creategateway:
|
|
post:
|
|
operationId: createEgressGateway
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
- description: Egress Gateway Request
|
|
in: body
|
|
name: egress_gateway_request
|
|
schema:
|
|
$ref: '#/definitions/EgressGatewayRequest'
|
|
x-go-name: EgressGatewayRequest
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create an egress gateway.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}/createingress:
|
|
post:
|
|
operationId: createIngressGateway
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create an ingress gateway.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}/createrelay:
|
|
post:
|
|
operationId: createRelay
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
- description: Relay Request
|
|
in: body
|
|
name: relay_request
|
|
schema:
|
|
$ref: '#/definitions/RelayRequest'
|
|
x-go-name: RelayRequest
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create a relay.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}/deletegateway:
|
|
delete:
|
|
operationId: deleteEgressGateway
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete an egress gateway.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}/deleteingress:
|
|
delete:
|
|
operationId: deleteIngressGateway
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete an ingress gateway.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}/deleterelay:
|
|
delete:
|
|
operationId: deleteRelay
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Remove a relay.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}/inet_gw:
|
|
delete:
|
|
operationId: deleteInternetGw
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete an internet gw.
|
|
tags:
|
|
- nodes
|
|
post:
|
|
operationId: createInternetGw
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create an inet node.
|
|
tags:
|
|
- nodes
|
|
put:
|
|
operationId: updateInternetGw
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: update an inet node.
|
|
tags:
|
|
- nodes
|
|
/api/nodes/{network}/{nodeid}/ingress/users:
|
|
get:
|
|
operationId: ingressGatewayUsers
|
|
parameters:
|
|
- in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
x-go-name: NodeID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Lists all the users attached to an ingress gateway.
|
|
tags:
|
|
- users
|
|
/api/nodes/adm/{network}/authenticate:
|
|
post:
|
|
operationId: authenticate
|
|
parameters:
|
|
- description: network
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
x-go-name: Network
|
|
- description: AuthParams
|
|
in: body
|
|
name: auth_params
|
|
schema:
|
|
$ref: '#/definitions/AuthParams'
|
|
x-go-name: AuthParams
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/successResponse'
|
|
schemes:
|
|
- https
|
|
summary: Authenticate to make further API calls related to a network.
|
|
tags:
|
|
- authenticate
|
|
/api/oauth/login:
|
|
get:
|
|
operationId: HandleAuthLogin
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/okResponse'
|
|
schemes:
|
|
- https
|
|
summary: Handles OAuth login.
|
|
tags:
|
|
- nodes
|
|
/api/server/getconfig:
|
|
get:
|
|
operationId: getConfig
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/serverConfigResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get the server configuration.
|
|
tags:
|
|
- server
|
|
/api/server/getserverinfo:
|
|
get:
|
|
operationId: getServerInfo
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/serverConfigResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get the server configuration.
|
|
tags:
|
|
- server
|
|
/api/server/status:
|
|
get:
|
|
operationId: getStatus
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/serverConfigResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get the server configuration.
|
|
tags:
|
|
- server
|
|
/api/users:
|
|
get:
|
|
operationId: getUsers
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get all users.
|
|
tags:
|
|
- user
|
|
/api/users/{username}:
|
|
delete:
|
|
operationId: deleteUser
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
x-go-name: Username
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete a user.
|
|
tags:
|
|
- user
|
|
get:
|
|
operationId: getUser
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
x-go-name: Username
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get an individual user.
|
|
tags:
|
|
- user
|
|
post:
|
|
operationId: createUser
|
|
parameters:
|
|
- description: User
|
|
in: body
|
|
name: user
|
|
schema:
|
|
$ref: '#/definitions/User'
|
|
x-go-name: User
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
x-go-name: Username
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create a user.
|
|
tags:
|
|
- user
|
|
put:
|
|
operationId: updateUser
|
|
parameters:
|
|
- description: User
|
|
in: body
|
|
name: user
|
|
schema:
|
|
$ref: '#/definitions/User'
|
|
x-go-name: User
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
x-go-name: Username
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Update a user.
|
|
tags:
|
|
- user
|
|
/api/users/{username}/remote_access_gw:
|
|
delete:
|
|
operationId: removeUserFromRemoteAccessGW
|
|
parameters:
|
|
- in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
x-go-name: Username
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete User from a remote access gateway.
|
|
tags:
|
|
- user
|
|
post:
|
|
operationId: attachUserToRemoteAccessGateway
|
|
parameters:
|
|
- in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
x-go-name: Username
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Attach User to a remote access gateway.
|
|
tags:
|
|
- user
|
|
/api/users/adm/authenticate:
|
|
post:
|
|
operationId: authenticateUser
|
|
parameters:
|
|
- description: User Auth Params
|
|
in: body
|
|
name: user_auth_params
|
|
schema:
|
|
$ref: '#/definitions/UserAuthParams'
|
|
x-go-name: UserAuthParams
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/successResponse'
|
|
schemes:
|
|
- https
|
|
summary: User authenticates using its password and retrieves a JWT for authorization.
|
|
tags:
|
|
- authenticate
|
|
/api/users/adm/createsuperadmin:
|
|
post:
|
|
operationId: createAdmin
|
|
parameters:
|
|
- description: User
|
|
in: body
|
|
name: user
|
|
schema:
|
|
$ref: '#/definitions/User'
|
|
x-go-name: User
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Make a user an admin.
|
|
tags:
|
|
- user
|
|
/api/users/adm/hassuperadmin:
|
|
get:
|
|
operationId: hasSuperAdmin
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/hasAdmin'
|
|
schemes:
|
|
- https
|
|
summary: Checks whether the server has an admin.
|
|
tags:
|
|
- user
|
|
/api/users/adm/transfersuperadmin:
|
|
post:
|
|
operationId: transferSuperAdmin
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Transfers superadmin role to an admin user.
|
|
tags:
|
|
- user
|
|
/api/users_pending:
|
|
get:
|
|
operationId: getPendingUsers
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: Get all pending users.
|
|
tags:
|
|
- user
|
|
/api/users_pending/{username}/pending:
|
|
delete:
|
|
operationId: deleteAllPendingUsers
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: delete all pending users.
|
|
tags:
|
|
- user
|
|
/api/users_pending/user/{username}:
|
|
delete:
|
|
operationId: deletePendingUser
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: delete pending user.
|
|
tags:
|
|
- user
|
|
post:
|
|
operationId: approvePendingUser
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/userBodyResponse'
|
|
schemes:
|
|
- https
|
|
summary: approve pending user.
|
|
tags:
|
|
- user
|
|
/api/v1/enrollment-keys:
|
|
get:
|
|
operationId: getEnrollmentKeys
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/EnrollmentKeys'
|
|
schemes:
|
|
- https
|
|
summary: Lists all EnrollmentKeys for admins.
|
|
tags:
|
|
- enrollmentKeys
|
|
post:
|
|
operationId: createEnrollmentKey
|
|
parameters:
|
|
- description: APIEnrollmentKey
|
|
in: body
|
|
name: body
|
|
schema:
|
|
$ref: '#/definitions/APIEnrollmentKey'
|
|
x-go-name: Body
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/EnrollmentKey'
|
|
schemes:
|
|
- https
|
|
summary: Creates an EnrollmentKey for hosts to use on Netmaker server.
|
|
tags:
|
|
- enrollmentKeys
|
|
/api/v1/enrollment-keys/{keyid}:
|
|
delete:
|
|
operationId: deleteEnrollmentKey
|
|
parameters:
|
|
- in: path
|
|
name: keyid
|
|
required: true
|
|
type: string
|
|
x-go-name: KeyID
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/okResponse'
|
|
schemes:
|
|
- https
|
|
summary: Deletes an EnrollmentKey from Netmaker server.
|
|
tags:
|
|
- enrollmentKeys
|
|
put:
|
|
operationId: updateEnrollmentKey
|
|
parameters:
|
|
- description: KeyID
|
|
in: path
|
|
name: keyid
|
|
required: true
|
|
type: string
|
|
x-go-name: KeyID
|
|
- description: APIEnrollmentKey
|
|
in: body
|
|
name: body
|
|
schema:
|
|
$ref: '#/definitions/APIEnrollmentKey'
|
|
x-go-name: Body
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/EnrollmentKey'
|
|
schemes:
|
|
- https
|
|
summary: Updates an EnrollmentKey for hosts to use on Netmaker server. Updates only the relay to use.
|
|
tags:
|
|
- enrollmentKeys
|
|
/api/v1/enrollment-keys/{token}:
|
|
post:
|
|
operationId: handleHostRegister
|
|
parameters:
|
|
- in: path
|
|
name: token
|
|
required: true
|
|
type: string
|
|
x-go-name: Token
|
|
- in: body
|
|
name: host
|
|
schema:
|
|
$ref: '#/definitions/Host'
|
|
x-go-name: Host
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/RegisterResponse'
|
|
schemes:
|
|
- https
|
|
summary: Handles a Netclient registration with server and add nodes accordingly.
|
|
tags:
|
|
- enrollmentKeys
|
|
/api/v1/fallback/host/{hostid}:
|
|
put:
|
|
operationId: hostUpdateFallback
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/apiHostResponse'
|
|
schemes:
|
|
- https
|
|
summary: Updates a Netclient host on Netmaker server.
|
|
tags:
|
|
- hosts
|
|
/api/v1/host:
|
|
get:
|
|
description: Used by clients for "pull" command
|
|
operationId: pullHost
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/hostPull'
|
|
schemes:
|
|
- https
|
|
tags:
|
|
- hosts
|
|
/api/v1/legacy/nodes:
|
|
delete:
|
|
operationId: wipeLegacyNodes
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/successResponse'
|
|
schemes:
|
|
- https
|
|
summary: Delete all legacy nodes from DB.
|
|
tags:
|
|
- nodes
|
|
/api/v1/node/failover:
|
|
delete:
|
|
operationId: deletefailOver
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create a relay.
|
|
tags:
|
|
- node
|
|
post:
|
|
operationId: createfailOver
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/nodeResponse'
|
|
schemes:
|
|
- https
|
|
summary: Create a relay.
|
|
tags:
|
|
- node
|
|
/api/v1/nodes/migrate:
|
|
put:
|
|
operationId: migrateData
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/hostPull'
|
|
schemes:
|
|
- https
|
|
summary: Used to migrate a legacy node.
|
|
tags:
|
|
- nodes
|
|
/meshclient/files/{filename}:
|
|
get:
|
|
operationId: getFile
|
|
parameters:
|
|
- description: Filename
|
|
in: path
|
|
name: filename
|
|
required: true
|
|
type: string
|
|
x-go-name: Filename
|
|
responses:
|
|
"200":
|
|
$ref: '#/responses/fileResponse'
|
|
schemes:
|
|
- https
|
|
summary: Retrieve a file from the file server.
|
|
tags:
|
|
- meshclient
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
EnrollmentKey:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/EnrollmentKey'
|
|
EnrollmentKeys:
|
|
description: ""
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/EnrollmentKey'
|
|
type: array
|
|
RegisterResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/RegisterResponse'
|
|
aclContainerResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/ACLContainer'
|
|
apiHostResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/ApiHost'
|
|
apiHostSliceResponse:
|
|
description: ""
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/ApiHost'
|
|
type: array
|
|
byteArrayResponse:
|
|
description: ""
|
|
schema:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
dnsResponse:
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/DNSEntry'
|
|
type: array
|
|
extClientResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/ExtClient'
|
|
extClientSliceResponse:
|
|
description: ""
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/ExtClient'
|
|
type: array
|
|
fileResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/File'
|
|
getNetworksSliceResponse:
|
|
description: ""
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/Network'
|
|
type: array
|
|
hasAdmin:
|
|
description: ""
|
|
hostPull:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/HostPull'
|
|
networkBodyResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/Network'
|
|
nodeResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/LegacyNode'
|
|
nodeSliceResponse:
|
|
description: ""
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/ApiNode'
|
|
type: array
|
|
okResponse:
|
|
description: ""
|
|
serverConfigResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/ServerConfig'
|
|
signal:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/Signal'
|
|
stringJSONResponse:
|
|
description: ""
|
|
successResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/SuccessResponse'
|
|
userBodyResponse:
|
|
description: ""
|
|
schema:
|
|
$ref: '#/definitions/User'
|
|
schemes:
|
|
- https
|
|
swagger: "2.0"
|