mirror of
https://github.com/gravitl/netmaker.git
synced 2026-04-23 00:17:10 +08:00
f8a0cfd744
* v1.5.1: release notes * v1.5.1: release notes * v1.5.1: release notes * v1.5.1: release notes * v1.5.1: release notes * v1.5.1: update version tag * v1.5.1: update version tag
8120 lines
190 KiB
YAML
8120 lines
190 KiB
YAML
definitions:
|
|
controllers.FlowRow:
|
|
properties:
|
|
bytes_recv:
|
|
type: integer
|
|
bytes_sent:
|
|
type: integer
|
|
direction:
|
|
type: string
|
|
dst_entity_id:
|
|
type: string
|
|
dst_entity_name:
|
|
type: string
|
|
dst_ip:
|
|
type: string
|
|
dst_port:
|
|
type: integer
|
|
dst_type:
|
|
type: string
|
|
end_ts:
|
|
type: string
|
|
flow_id:
|
|
type: string
|
|
host_id:
|
|
type: string
|
|
host_name:
|
|
type: string
|
|
icmp_code:
|
|
type: integer
|
|
icmp_type:
|
|
type: integer
|
|
network_id:
|
|
type: string
|
|
packets_recv:
|
|
type: integer
|
|
packets_sent:
|
|
type: integer
|
|
protocol:
|
|
type: integer
|
|
src_entity_id:
|
|
type: string
|
|
src_entity_name:
|
|
type: string
|
|
src_ip:
|
|
type: string
|
|
src_port:
|
|
type: integer
|
|
src_type:
|
|
type: string
|
|
start_ts:
|
|
type: string
|
|
status:
|
|
type: integer
|
|
version:
|
|
type: string
|
|
type: object
|
|
datatypes.JSONMap:
|
|
additionalProperties: true
|
|
type: object
|
|
datatypes.JSONType-schema_NetworkRoles:
|
|
type: object
|
|
datatypes.JSONType-schema_ResourceAccess:
|
|
type: object
|
|
models.APIEnrollmentKey:
|
|
properties:
|
|
auto_assign_gw:
|
|
type: boolean
|
|
auto_egress:
|
|
type: boolean
|
|
expiration:
|
|
format: int64
|
|
type: integer
|
|
groups:
|
|
items:
|
|
type: string
|
|
type: array
|
|
networks:
|
|
items:
|
|
type: string
|
|
type: array
|
|
relay:
|
|
type: string
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type:
|
|
$ref: '#/definitions/models.KeyType'
|
|
unlimited:
|
|
type: boolean
|
|
uses_remaining:
|
|
type: integer
|
|
required:
|
|
- tags
|
|
type: object
|
|
models.Acl:
|
|
properties:
|
|
allowed_traffic_direction:
|
|
$ref: '#/definitions/models.AllowedTrafficDirection'
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
default:
|
|
type: boolean
|
|
dst_type:
|
|
items:
|
|
$ref: '#/definitions/models.AclPolicyTag'
|
|
type: array
|
|
enabled:
|
|
type: boolean
|
|
id:
|
|
type: string
|
|
meta_data:
|
|
type: string
|
|
name:
|
|
type: string
|
|
network_id:
|
|
$ref: '#/definitions/schema.NetworkID'
|
|
policy_type:
|
|
$ref: '#/definitions/models.AclPolicyType'
|
|
ports:
|
|
items:
|
|
type: string
|
|
type: array
|
|
protocol:
|
|
allOf:
|
|
- $ref: '#/definitions/models.Protocol'
|
|
description: tcp, udp, etc.
|
|
src_type:
|
|
items:
|
|
$ref: '#/definitions/models.AclPolicyTag'
|
|
type: array
|
|
type:
|
|
type: string
|
|
type: object
|
|
models.AclGroupType:
|
|
enum:
|
|
- user
|
|
- user-group
|
|
- tag
|
|
- device
|
|
- egress-range
|
|
- egress-id
|
|
- ip
|
|
- ipset
|
|
type: string
|
|
x-enum-varnames:
|
|
- UserAclID
|
|
- UserGroupAclID
|
|
- NodeTagID
|
|
- NodeID
|
|
- EgressRange
|
|
- EgressID
|
|
- NetmakerIPAclID
|
|
- NetmakerSubNetRangeAClID
|
|
models.AclPolicyTag:
|
|
properties:
|
|
id:
|
|
$ref: '#/definitions/models.AclGroupType'
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
type: object
|
|
models.AclPolicyType:
|
|
enum:
|
|
- user-policy
|
|
- device-policy
|
|
type: string
|
|
x-enum-varnames:
|
|
- UserPolicy
|
|
- DevicePolicy
|
|
models.AclPolicyTypes:
|
|
properties:
|
|
dst_grp_types:
|
|
items:
|
|
$ref: '#/definitions/models.AclGroupType'
|
|
type: array
|
|
policy_types:
|
|
items:
|
|
$ref: '#/definitions/models.AclPolicyType'
|
|
type: array
|
|
protocolTypes:
|
|
items:
|
|
$ref: '#/definitions/models.ProtocolType'
|
|
type: array
|
|
src_grp_types:
|
|
items:
|
|
$ref: '#/definitions/models.AclGroupType'
|
|
type: array
|
|
type: object
|
|
models.AclRule:
|
|
properties:
|
|
allowed:
|
|
type: boolean
|
|
allowed_ports:
|
|
items:
|
|
type: string
|
|
type: array
|
|
allowed_protocols:
|
|
allOf:
|
|
- $ref: '#/definitions/models.Protocol'
|
|
description: tcp, udp, etc.
|
|
direction:
|
|
allOf:
|
|
- $ref: '#/definitions/models.AllowedTrafficDirection'
|
|
description: single or two-way
|
|
dst:
|
|
items:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: array
|
|
dst6:
|
|
items:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: array
|
|
id:
|
|
type: string
|
|
ip_list:
|
|
items:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: array
|
|
ip6_list:
|
|
items:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: array
|
|
type: object
|
|
models.AllowedTrafficDirection:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
type: integer
|
|
x-enum-varnames:
|
|
- TrafficDirectionUni
|
|
- TrafficDirectionBi
|
|
models.ApiHost:
|
|
properties:
|
|
autoupdate:
|
|
type: boolean
|
|
country_code:
|
|
type: string
|
|
debug:
|
|
type: boolean
|
|
defaultinterface:
|
|
type: string
|
|
dns:
|
|
type: string
|
|
enable_flow_logs:
|
|
type: boolean
|
|
endpointip:
|
|
type: string
|
|
endpointipv6:
|
|
type: string
|
|
firewallinuse:
|
|
type: string
|
|
id:
|
|
type: string
|
|
interfaces:
|
|
items:
|
|
$ref: '#/definitions/models.ApiIface'
|
|
type: array
|
|
isdefault:
|
|
type: boolean
|
|
isstatic:
|
|
type: boolean
|
|
isstaticport:
|
|
type: boolean
|
|
kernel_version:
|
|
type: string
|
|
listenport:
|
|
type: integer
|
|
location:
|
|
type: string
|
|
macaddress:
|
|
type: string
|
|
mtu:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
nat_type:
|
|
type: string
|
|
nodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
os:
|
|
type: string
|
|
os_family:
|
|
type: string
|
|
os_version:
|
|
type: string
|
|
persistentkeepalive:
|
|
type: integer
|
|
publickey:
|
|
type: string
|
|
verbosity:
|
|
type: integer
|
|
version:
|
|
type: string
|
|
wg_public_listen_port:
|
|
type: integer
|
|
type: object
|
|
models.ApiIface:
|
|
properties:
|
|
addressString:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
models.ApiNode:
|
|
properties:
|
|
additional_rag_ips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
address:
|
|
type: string
|
|
address6:
|
|
type: string
|
|
allowedips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
auto_assign_gw:
|
|
type: boolean
|
|
auto_relayed_peers:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
connected:
|
|
type: boolean
|
|
country:
|
|
type: string
|
|
defaultacl:
|
|
description: == PRO ==
|
|
type: string
|
|
dnson:
|
|
type: boolean
|
|
egressgatewaynatenabled:
|
|
type: boolean
|
|
egressgatewayranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
egressgatewayranges_with_metric:
|
|
items:
|
|
$ref: '#/definitions/models.EgressRangeMetric'
|
|
type: array
|
|
expdatetime:
|
|
format: int64
|
|
type: integer
|
|
fail_over_peers:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
failed_over_by:
|
|
type: string
|
|
hostid:
|
|
minLength: 5
|
|
type: string
|
|
id:
|
|
minLength: 5
|
|
type: string
|
|
inet_node_req:
|
|
$ref: '#/definitions/models.InetNodeReq'
|
|
ingressdns:
|
|
type: string
|
|
ingressmtu:
|
|
type: integer
|
|
ingresspersistentkeepalive:
|
|
type: integer
|
|
internetgw_node_id:
|
|
type: string
|
|
is_auto_relay:
|
|
type: boolean
|
|
is_fail_over:
|
|
type: boolean
|
|
is_gw:
|
|
type: boolean
|
|
is_static:
|
|
type: boolean
|
|
is_user_node:
|
|
type: boolean
|
|
isegressgateway:
|
|
type: boolean
|
|
isingressgateway:
|
|
type: boolean
|
|
isinternetgateway:
|
|
type: boolean
|
|
isrelay:
|
|
type: boolean
|
|
isrelayed:
|
|
type: boolean
|
|
last_evaluated_at:
|
|
type: string
|
|
lastcheckin:
|
|
format: int64
|
|
type: integer
|
|
lastmodified:
|
|
format: int64
|
|
type: integer
|
|
lastpeerupdate:
|
|
format: int64
|
|
type: integer
|
|
localaddress:
|
|
type: string
|
|
location:
|
|
type: string
|
|
metadata:
|
|
type: string
|
|
network:
|
|
type: string
|
|
networkrange:
|
|
type: string
|
|
networkrange6:
|
|
type: string
|
|
pendingdelete:
|
|
type: boolean
|
|
posture_check_violation_severity_level:
|
|
$ref: '#/definitions/schema.Severity'
|
|
posture_check_violations:
|
|
items:
|
|
$ref: '#/definitions/models.Violation'
|
|
type: array
|
|
relayedby:
|
|
description: AutoRelayedBy uuid.UUID `json:"auto_relayed_by"`
|
|
type: string
|
|
relaynodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
server:
|
|
type: string
|
|
static_node:
|
|
$ref: '#/definitions/models.ExtClient'
|
|
status:
|
|
$ref: '#/definitions/models.NodeStatus'
|
|
tags:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
required:
|
|
- hostid
|
|
- id
|
|
type: object
|
|
models.AuthParams:
|
|
properties:
|
|
id:
|
|
type: string
|
|
macaddress:
|
|
type: string
|
|
password:
|
|
type: string
|
|
type: object
|
|
models.AutoRelayMeReq:
|
|
properties:
|
|
auto_relay_gw_id:
|
|
type: string
|
|
node_id:
|
|
type: string
|
|
type: object
|
|
models.BulkDeleteRequest:
|
|
properties:
|
|
ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
models.BulkExtClientStatusUpdate:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
models.BulkNodeStatusUpdate:
|
|
properties:
|
|
connected:
|
|
type: boolean
|
|
ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
models.BulkUserStatusUpdate:
|
|
properties:
|
|
disable:
|
|
type: boolean
|
|
ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
models.CreateGwReq:
|
|
properties:
|
|
extclientdns:
|
|
type: string
|
|
inet_node_client_ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
is_internet_gw:
|
|
type: boolean
|
|
metadata:
|
|
type: string
|
|
mtu:
|
|
type: integer
|
|
netid:
|
|
type: string
|
|
nodeid:
|
|
type: string
|
|
persistentkeepalive:
|
|
type: integer
|
|
relayaddrs:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
models.CreateTagReq:
|
|
properties:
|
|
color_code:
|
|
type: string
|
|
network:
|
|
$ref: '#/definitions/schema.NetworkID'
|
|
tag_name:
|
|
type: string
|
|
tagged_nodes:
|
|
items:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
type: array
|
|
type: object
|
|
models.CustomExtClient:
|
|
properties:
|
|
client_version:
|
|
type: string
|
|
clientid:
|
|
type: string
|
|
country:
|
|
type: string
|
|
deniednodeacls:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
device_name:
|
|
type: string
|
|
dns:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
extraallowedips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
is_already_connected_to_inet_gw:
|
|
type: boolean
|
|
kernel_version:
|
|
type: string
|
|
location:
|
|
description: 'format: lat,long'
|
|
type: string
|
|
os:
|
|
type: string
|
|
os_family:
|
|
type: string
|
|
os_version:
|
|
type: string
|
|
postdown:
|
|
maxLength: 1024
|
|
type: string
|
|
postup:
|
|
maxLength: 1024
|
|
type: string
|
|
public_endpoint:
|
|
type: string
|
|
publickey:
|
|
type: string
|
|
remote_access_client_id:
|
|
description: unique ID (MAC address) of RAC machine
|
|
type: string
|
|
tags:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
models.DNSEntry:
|
|
properties:
|
|
address:
|
|
type: string
|
|
address6:
|
|
type: string
|
|
name:
|
|
maxLength: 192
|
|
minLength: 1
|
|
type: string
|
|
network:
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
models.EgressDomain:
|
|
properties:
|
|
domain:
|
|
type: string
|
|
host:
|
|
$ref: '#/definitions/schema.Host'
|
|
id:
|
|
type: string
|
|
node:
|
|
$ref: '#/definitions/models.Node'
|
|
type: object
|
|
models.EgressGatewayRequest:
|
|
properties:
|
|
natenabled:
|
|
type: string
|
|
netid:
|
|
type: string
|
|
nodeid:
|
|
type: string
|
|
ranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
ranges_with_metric:
|
|
items:
|
|
$ref: '#/definitions/models.EgressRangeMetric'
|
|
type: array
|
|
type: object
|
|
models.EgressInfo:
|
|
properties:
|
|
egress_fw_rules:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.AclRule'
|
|
type: object
|
|
egress_gateway_cfg:
|
|
$ref: '#/definitions/models.EgressGatewayRequest'
|
|
egress_gw_addr:
|
|
$ref: '#/definitions/net.IPNet'
|
|
egress_gw_addr6:
|
|
$ref: '#/definitions/net.IPNet'
|
|
egress_id:
|
|
type: string
|
|
network:
|
|
$ref: '#/definitions/net.IPNet'
|
|
network6:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: object
|
|
models.EgressNetworkRoutes:
|
|
properties:
|
|
egress_gw_addr:
|
|
$ref: '#/definitions/net.IPNet'
|
|
egress_gw_addr6:
|
|
$ref: '#/definitions/net.IPNet'
|
|
egress_ranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
egress_ranges_metric:
|
|
items:
|
|
$ref: '#/definitions/models.EgressRangeMetric'
|
|
type: array
|
|
network:
|
|
type: string
|
|
node_addr:
|
|
$ref: '#/definitions/net.IPNet'
|
|
node_addr6:
|
|
$ref: '#/definitions/net.IPNet'
|
|
peer_key:
|
|
type: string
|
|
type: object
|
|
models.EgressRangeMetric:
|
|
properties:
|
|
nat:
|
|
type: boolean
|
|
nat_mode:
|
|
$ref: '#/definitions/schema.EgressNATMode'
|
|
network:
|
|
type: string
|
|
route_metric:
|
|
description: preffered range 1-999
|
|
type: integer
|
|
virtual_network:
|
|
type: string
|
|
type: object
|
|
models.EgressReq:
|
|
properties:
|
|
description:
|
|
type: string
|
|
domain:
|
|
type: string
|
|
id:
|
|
type: string
|
|
is_internet_gateway:
|
|
type: boolean
|
|
mode:
|
|
$ref: '#/definitions/schema.EgressNATMode'
|
|
name:
|
|
type: string
|
|
nat:
|
|
type: boolean
|
|
network:
|
|
type: string
|
|
nodes:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
range:
|
|
type: string
|
|
status:
|
|
type: boolean
|
|
tags:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
type: object
|
|
models.EnrollmentKey:
|
|
properties:
|
|
auto_assign_gw:
|
|
type: boolean
|
|
auto_egress:
|
|
type: boolean
|
|
default:
|
|
type: boolean
|
|
expiration:
|
|
type: string
|
|
groups:
|
|
items:
|
|
type: string
|
|
type: array
|
|
networks:
|
|
items:
|
|
type: string
|
|
type: array
|
|
relay:
|
|
type: string
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
token:
|
|
description: B64 value of EnrollmentToken
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/models.KeyType'
|
|
unlimited:
|
|
type: boolean
|
|
uses_remaining:
|
|
type: integer
|
|
value:
|
|
type: string
|
|
type: object
|
|
models.ErrorResponse:
|
|
properties:
|
|
code:
|
|
type: integer
|
|
message:
|
|
type: string
|
|
response: {}
|
|
type: object
|
|
models.ExtClient:
|
|
properties:
|
|
address:
|
|
type: string
|
|
address6:
|
|
type: string
|
|
allowed_ips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
client_version:
|
|
type: string
|
|
clientid:
|
|
type: string
|
|
country:
|
|
type: string
|
|
deniednodeacls:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
device_name:
|
|
type: string
|
|
dns:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
extraallowedips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
ingressgatewayendpoint:
|
|
type: string
|
|
ingressgatewayid:
|
|
type: string
|
|
jit_expires_at:
|
|
description: JIT grant expiry time (nil if JIT not enabled or user is admin)
|
|
type: string
|
|
kernel_version:
|
|
type: string
|
|
last_evaluated_at:
|
|
type: string
|
|
lastmodified:
|
|
format: int64
|
|
type: integer
|
|
location:
|
|
description: 'format: lat,long'
|
|
type: string
|
|
network:
|
|
type: string
|
|
os:
|
|
type: string
|
|
os_family:
|
|
type: string
|
|
os_version:
|
|
type: string
|
|
ownerid:
|
|
type: string
|
|
postdown:
|
|
type: string
|
|
postup:
|
|
type: string
|
|
posture_check_violation_severity_level:
|
|
$ref: '#/definitions/schema.Severity'
|
|
posture_check_violations:
|
|
items:
|
|
$ref: '#/definitions/models.Violation'
|
|
type: array
|
|
privatekey:
|
|
type: string
|
|
public_endpoint:
|
|
type: string
|
|
publickey:
|
|
type: string
|
|
remote_access_client_id:
|
|
description: unique ID (MAC address) of RAC machine
|
|
type: string
|
|
tags:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
models.FeatureFlags:
|
|
properties:
|
|
allow_multi_server_license:
|
|
type: boolean
|
|
enable_device_approval:
|
|
type: boolean
|
|
enable_egress_ha:
|
|
type: boolean
|
|
enable_flow_logs:
|
|
type: boolean
|
|
enable_gws_ha:
|
|
type: boolean
|
|
enable_idp_integration:
|
|
type: boolean
|
|
enable_jit:
|
|
type: boolean
|
|
enable_network_activity:
|
|
type: boolean
|
|
enable_oauth:
|
|
type: boolean
|
|
enable_overlapping_egress_ranges:
|
|
type: boolean
|
|
enable_posture_checks:
|
|
type: boolean
|
|
type: object
|
|
models.FwRule:
|
|
properties:
|
|
allow:
|
|
type: boolean
|
|
allowed_ports:
|
|
items:
|
|
type: string
|
|
type: array
|
|
allowed_protocols:
|
|
allOf:
|
|
- $ref: '#/definitions/models.Protocol'
|
|
description: tcp, udp, etc.
|
|
dst_ip:
|
|
$ref: '#/definitions/net.IPNet'
|
|
src_ip:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: object
|
|
models.FwUpdate:
|
|
properties:
|
|
acl_rules:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.AclRule'
|
|
type: object
|
|
allow_all:
|
|
type: boolean
|
|
egress_info:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.EgressInfo'
|
|
type: object
|
|
ingress_info:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.IngressInfo'
|
|
type: object
|
|
is_egress_gw:
|
|
type: boolean
|
|
is_ingress_gw:
|
|
type: boolean
|
|
networks:
|
|
items:
|
|
$ref: '#/definitions/models.AclRule'
|
|
type: array
|
|
type: object
|
|
models.HostInfoMap:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.HostNetworkInfo'
|
|
type: object
|
|
models.HostMqAction:
|
|
enum:
|
|
- UPGRADE
|
|
- FORCE_UPGRADE
|
|
- SIGNAL_HOST
|
|
- UPDATE_HOST
|
|
- UPDATE_NODE
|
|
- DELETE_HOST
|
|
- JOIN_HOST_TO_NETWORK
|
|
- ACK
|
|
- REQ_ACK
|
|
- CHECK_IN
|
|
- UPDATE_KEYS
|
|
- REQ_PULL
|
|
- SIGNAL_PULL
|
|
- UPDATE_METRICS
|
|
- EGRESS_UPDATE
|
|
- CHECK_AUTO_ASSIGN_GW
|
|
type: string
|
|
x-enum-varnames:
|
|
- Upgrade
|
|
- ForceUpgrade
|
|
- SignalHost
|
|
- UpdateHost
|
|
- UpdateNode
|
|
- DeleteHost
|
|
- JoinHostToNetwork
|
|
- Acknowledgement
|
|
- RequestAck
|
|
- CheckIn
|
|
- UpdateKeys
|
|
- RequestPull
|
|
- SignalPull
|
|
- UpdateMetrics
|
|
- EgressUpdate
|
|
- CheckAutoAssignGw
|
|
models.HostNetworkInfo:
|
|
properties:
|
|
interfaces:
|
|
items:
|
|
$ref: '#/definitions/schema.Iface'
|
|
type: array
|
|
is_static:
|
|
type: boolean
|
|
is_static_port:
|
|
type: boolean
|
|
listen_port:
|
|
type: integer
|
|
version:
|
|
type: string
|
|
type: object
|
|
models.HostPeerInfo:
|
|
properties:
|
|
network_peers:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.PeerMap'
|
|
type: object
|
|
type: object
|
|
models.HostPull:
|
|
properties:
|
|
address_identity_map:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.PeerIdentity'
|
|
type: object
|
|
auto_relay_nodes:
|
|
additionalProperties:
|
|
items:
|
|
$ref: '#/definitions/models.Node'
|
|
type: array
|
|
type: object
|
|
change_default_gw:
|
|
type: boolean
|
|
default_gw_ip:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
dns_nameservers:
|
|
items:
|
|
$ref: '#/definitions/models.Nameserver'
|
|
type: array
|
|
egress_network_routes:
|
|
items:
|
|
$ref: '#/definitions/models.EgressNetworkRoutes'
|
|
type: array
|
|
egress_with_domains:
|
|
items:
|
|
$ref: '#/definitions/models.EgressDomain'
|
|
type: array
|
|
endpoint_detection:
|
|
type: boolean
|
|
fw_update:
|
|
$ref: '#/definitions/models.FwUpdate'
|
|
gw_nodes:
|
|
additionalProperties:
|
|
items:
|
|
$ref: '#/definitions/models.Node'
|
|
type: array
|
|
type: object
|
|
host:
|
|
$ref: '#/definitions/schema.Host'
|
|
host_network_info:
|
|
$ref: '#/definitions/models.HostInfoMap'
|
|
is_inet_gw:
|
|
type: boolean
|
|
name_servers:
|
|
items:
|
|
type: string
|
|
type: array
|
|
nodes:
|
|
items:
|
|
$ref: '#/definitions/models.Node'
|
|
type: array
|
|
peer_ids:
|
|
$ref: '#/definitions/models.PeerMap'
|
|
peers:
|
|
items:
|
|
$ref: '#/definitions/wgtypes.PeerConfig'
|
|
type: array
|
|
replace_peers:
|
|
type: boolean
|
|
server_config:
|
|
$ref: '#/definitions/models.ServerConfig'
|
|
type: object
|
|
models.HostUpdate:
|
|
properties:
|
|
action:
|
|
$ref: '#/definitions/models.HostMqAction'
|
|
egressDomain:
|
|
$ref: '#/definitions/models.EgressDomain'
|
|
host:
|
|
$ref: '#/definitions/schema.Host'
|
|
newMetrics:
|
|
$ref: '#/definitions/models.Metrics'
|
|
node:
|
|
$ref: '#/definitions/models.Node'
|
|
signal:
|
|
$ref: '#/definitions/models.Signal'
|
|
type: object
|
|
models.IDPSyncStatus:
|
|
properties:
|
|
description:
|
|
description: |-
|
|
Description is empty if the sync is ongoing or completed,
|
|
and describes the error when the sync fails.
|
|
type: string
|
|
status:
|
|
description: 'Status would be one of: in_progress, completed or failed.'
|
|
type: string
|
|
type: object
|
|
models.IDPSyncTestRequest:
|
|
properties:
|
|
auth_provider:
|
|
type: string
|
|
azure_tenant_id:
|
|
type: string
|
|
client_id:
|
|
type: string
|
|
client_secret:
|
|
type: string
|
|
google_admin_email:
|
|
type: string
|
|
google_sa_creds_json:
|
|
type: string
|
|
okta_api_token:
|
|
type: string
|
|
okta_org_url:
|
|
type: string
|
|
type: object
|
|
models.IDandAddr:
|
|
properties:
|
|
address:
|
|
type: string
|
|
address4:
|
|
type: string
|
|
address6:
|
|
type: string
|
|
host_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
is_extclient:
|
|
type: boolean
|
|
isserver:
|
|
type: string
|
|
listen_port:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
network:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
models.InetNodeReq:
|
|
properties:
|
|
inet_node_client_ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
models.IngressGwUsers:
|
|
properties:
|
|
network:
|
|
type: string
|
|
node_id:
|
|
type: string
|
|
users:
|
|
items:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
type: array
|
|
type: object
|
|
models.IngressInfo:
|
|
properties:
|
|
egress_ranges:
|
|
items:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: array
|
|
egress_ranges6:
|
|
items:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: array
|
|
ingress_id:
|
|
type: string
|
|
network:
|
|
$ref: '#/definitions/net.IPNet'
|
|
network6:
|
|
$ref: '#/definitions/net.IPNet'
|
|
rules:
|
|
items:
|
|
$ref: '#/definitions/models.FwRule'
|
|
type: array
|
|
static_node_ips:
|
|
items:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
type: array
|
|
type: object
|
|
models.InviteUsersReq:
|
|
properties:
|
|
network_roles:
|
|
additionalProperties:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
platform_role_id:
|
|
type: string
|
|
user_emails:
|
|
items:
|
|
type: string
|
|
type: array
|
|
user_group_ids:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
models.JITAccessRequest:
|
|
properties:
|
|
network_id:
|
|
description: Network identifier
|
|
type: string
|
|
reason:
|
|
description: Reason for access request (required)
|
|
type: string
|
|
type: object
|
|
models.JITOperationRequest:
|
|
properties:
|
|
action:
|
|
description: enable, disable, request, approve, deny
|
|
type: string
|
|
expires_at:
|
|
description: Unix epoch timestamp (seconds) for when access should expire
|
|
type: integer
|
|
grant_id:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
request_id:
|
|
type: string
|
|
type: object
|
|
models.KeyType:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
type: integer
|
|
x-enum-varnames:
|
|
- Undefined
|
|
- TimeExpiration
|
|
- Uses
|
|
- Unlimited
|
|
models.LegacyNode:
|
|
properties:
|
|
accesskey:
|
|
type: string
|
|
action:
|
|
type: string
|
|
address:
|
|
type: string
|
|
address6:
|
|
type: string
|
|
allowedips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
connected:
|
|
type: string
|
|
defaultacl:
|
|
description: == PRO ==
|
|
type: string
|
|
dnson:
|
|
type: string
|
|
egressgatewaynatenabled:
|
|
type: string
|
|
egressgatewayranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
egressgatewayrequest:
|
|
$ref: '#/definitions/models.EgressGatewayRequest'
|
|
endpoint:
|
|
type: string
|
|
expdatetime:
|
|
format: int64
|
|
type: integer
|
|
failover:
|
|
type: string
|
|
failovernode:
|
|
type: string
|
|
firewallinuse:
|
|
type: string
|
|
id:
|
|
minLength: 5
|
|
type: string
|
|
ingressgatewayrange:
|
|
type: string
|
|
ingressgatewayrange6:
|
|
type: string
|
|
interface:
|
|
type: string
|
|
interfaces:
|
|
items:
|
|
$ref: '#/definitions/schema.Iface'
|
|
type: array
|
|
internetgateway:
|
|
type: string
|
|
ipforwarding:
|
|
type: string
|
|
isdocker:
|
|
type: string
|
|
isegressgateway:
|
|
type: string
|
|
ishub:
|
|
type: string
|
|
isingressgateway:
|
|
type: string
|
|
isk8s:
|
|
type: string
|
|
ispending:
|
|
type: string
|
|
isrelay:
|
|
type: string
|
|
isrelayed:
|
|
type: string
|
|
isserver:
|
|
type: string
|
|
isstatic:
|
|
description: IsStatic - refers to if the Endpoint is set manually or dynamically
|
|
type: string
|
|
lastcheckin:
|
|
format: int64
|
|
type: integer
|
|
lastmodified:
|
|
format: int64
|
|
type: integer
|
|
lastpeerupdate:
|
|
format: int64
|
|
type: integer
|
|
listenport:
|
|
maximum: 65535
|
|
minimum: 1024
|
|
type: integer
|
|
localaddress:
|
|
type: string
|
|
locallistenport:
|
|
maximum: 65535
|
|
minimum: 0
|
|
type: integer
|
|
macaddress:
|
|
type: string
|
|
mtu:
|
|
type: integer
|
|
name:
|
|
maxLength: 62
|
|
type: string
|
|
network:
|
|
type: string
|
|
networksettings:
|
|
$ref: '#/definitions/models.Network'
|
|
os:
|
|
type: string
|
|
ownerid:
|
|
type: string
|
|
password:
|
|
minLength: 6
|
|
type: string
|
|
persistentkeepalive:
|
|
maximum: 1000
|
|
type: integer
|
|
publickey:
|
|
type: string
|
|
relayaddrs:
|
|
items:
|
|
type: string
|
|
type: array
|
|
server:
|
|
type: string
|
|
traffickeys:
|
|
$ref: '#/definitions/models.TrafficKeys'
|
|
udpholepunch:
|
|
type: string
|
|
version:
|
|
type: string
|
|
required:
|
|
- endpoint
|
|
- id
|
|
- password
|
|
- publickey
|
|
type: object
|
|
models.Metric:
|
|
properties:
|
|
actualuptime:
|
|
format: int64
|
|
type: integer
|
|
connected:
|
|
type: boolean
|
|
lasttotalreceived:
|
|
format: int64
|
|
type: integer
|
|
lasttotalsent:
|
|
format: int64
|
|
type: integer
|
|
latency:
|
|
format: int64
|
|
type: integer
|
|
node_name:
|
|
type: string
|
|
percentup:
|
|
type: number
|
|
totalreceived:
|
|
format: int64
|
|
type: integer
|
|
totalsent:
|
|
format: int64
|
|
type: integer
|
|
totaltime:
|
|
format: int64
|
|
type: integer
|
|
uptime:
|
|
format: int64
|
|
type: integer
|
|
type: object
|
|
models.Metrics:
|
|
properties:
|
|
connectivity:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.Metric'
|
|
type: object
|
|
network:
|
|
type: string
|
|
node_id:
|
|
type: string
|
|
node_name:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
models.MetricsMap:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.Metrics'
|
|
type: object
|
|
models.MigrationData:
|
|
properties:
|
|
hostName:
|
|
type: string
|
|
legacyNodes:
|
|
items:
|
|
$ref: '#/definitions/models.LegacyNode'
|
|
type: array
|
|
os:
|
|
type: string
|
|
password:
|
|
type: string
|
|
type: object
|
|
models.Nameserver:
|
|
properties:
|
|
ips:
|
|
items:
|
|
type: string
|
|
type: array
|
|
is_ad_domain:
|
|
type: boolean
|
|
is_fallback:
|
|
type: boolean
|
|
is_search_domain:
|
|
type: boolean
|
|
match_domain:
|
|
type: string
|
|
type: object
|
|
models.NameserverReq:
|
|
properties:
|
|
description:
|
|
type: string
|
|
match_domain:
|
|
type: string
|
|
name:
|
|
type: string
|
|
network:
|
|
type: string
|
|
servers:
|
|
items:
|
|
type: string
|
|
type: array
|
|
status:
|
|
type: boolean
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
models.Network:
|
|
properties:
|
|
addressrange:
|
|
type: string
|
|
addressrange6:
|
|
type: string
|
|
auto_join:
|
|
type: string
|
|
auto_remove:
|
|
type: string
|
|
auto_remove_tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
auto_remove_threshold_mins:
|
|
type: integer
|
|
created_by:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
defaultacl:
|
|
type: string
|
|
defaultkeepalive:
|
|
maximum: 1000
|
|
type: integer
|
|
defaultmtu:
|
|
type: integer
|
|
dns_nameservers:
|
|
items:
|
|
type: string
|
|
type: array
|
|
isipv4:
|
|
type: string
|
|
isipv6:
|
|
type: string
|
|
jit_enabled:
|
|
type: string
|
|
netid:
|
|
maxLength: 32
|
|
minLength: 1
|
|
type: string
|
|
networklastmodified:
|
|
format: int64
|
|
type: integer
|
|
nodeslastmodified:
|
|
format: int64
|
|
type: integer
|
|
virtual_nat_pool_ipv4:
|
|
description: VirtualNATPoolIPv4 is the IPv4 CIDR pool from which virtual NAT
|
|
ranges are allocated for egress gateways
|
|
type: string
|
|
virtual_nat_site_prefixlen_ipv4:
|
|
description: VirtualNATSitePrefixLenIPv4 is the prefix length (e.g., 24) for
|
|
individual site allocations from the IPv4 virtual NAT pool
|
|
type: integer
|
|
required:
|
|
- netid
|
|
type: object
|
|
models.NetworkMetrics:
|
|
properties:
|
|
nodes:
|
|
$ref: '#/definitions/models.MetricsMap'
|
|
type: object
|
|
models.Node:
|
|
properties:
|
|
action:
|
|
type: string
|
|
additional_rag_ips:
|
|
items:
|
|
type: number
|
|
type: array
|
|
address:
|
|
$ref: '#/definitions/net.IPNet'
|
|
address6:
|
|
$ref: '#/definitions/net.IPNet'
|
|
auto_assign_gw:
|
|
type: boolean
|
|
auto_relayed_peers_v1:
|
|
additionalProperties:
|
|
type: string
|
|
description: AutoRelayedPeers map[string]struct{} `json:"auto_relayed_peers"`
|
|
type: object
|
|
connected:
|
|
type: boolean
|
|
country_code:
|
|
type: string
|
|
egressgatewaynatenabled:
|
|
type: boolean
|
|
egressgatewayranges:
|
|
items:
|
|
type: string
|
|
type: array
|
|
egressgatewayrequest:
|
|
$ref: '#/definitions/models.EgressGatewayRequest'
|
|
expdatetime:
|
|
type: string
|
|
fail_over_peers:
|
|
additionalProperties:
|
|
type: object
|
|
description: AutoRelayedBy uuid.UUID `json:"auto_relayed_by"`
|
|
type: object
|
|
failed_over_by:
|
|
type: string
|
|
hostid:
|
|
type: string
|
|
id:
|
|
type: string
|
|
inet_node_req:
|
|
$ref: '#/definitions/models.InetNodeReq'
|
|
ingressdns:
|
|
type: string
|
|
ingressgatewayrange:
|
|
type: string
|
|
ingressgatewayrange6:
|
|
type: string
|
|
ingressmtu:
|
|
type: integer
|
|
ingresspersistentkeepalive:
|
|
type: integer
|
|
internetgw_node_id:
|
|
type: string
|
|
is_auto_relay:
|
|
type: boolean
|
|
is_fail_over:
|
|
type: boolean
|
|
is_gw:
|
|
type: boolean
|
|
is_static:
|
|
type: boolean
|
|
is_user_node:
|
|
type: boolean
|
|
isegressgateway:
|
|
type: boolean
|
|
isingressgateway:
|
|
type: boolean
|
|
isinternetgateway:
|
|
type: boolean
|
|
isrelay:
|
|
type: boolean
|
|
isrelayed:
|
|
type: boolean
|
|
last_evaluated_at:
|
|
type: string
|
|
lastcheckin:
|
|
type: string
|
|
lastmodified:
|
|
type: string
|
|
lastpeerupdate:
|
|
type: string
|
|
localaddress:
|
|
$ref: '#/definitions/net.IPNet'
|
|
location:
|
|
description: 'Format: "lat,lon"'
|
|
type: string
|
|
metadata:
|
|
type: string
|
|
network:
|
|
type: string
|
|
networkrange:
|
|
type: integer
|
|
networkrange6:
|
|
type: number
|
|
node_status:
|
|
$ref: '#/definitions/models.NodeStatus'
|
|
ownerid:
|
|
description: == PRO ==
|
|
type: string
|
|
pendingdelete:
|
|
type: boolean
|
|
posture_check_violation_severity_level:
|
|
$ref: '#/definitions/schema.Severity'
|
|
posture_check_violations:
|
|
items:
|
|
$ref: '#/definitions/models.Violation'
|
|
type: array
|
|
relayedby:
|
|
type: string
|
|
relaynodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
server:
|
|
type: string
|
|
static_node:
|
|
$ref: '#/definitions/models.ExtClient'
|
|
tags:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
models.NodeGet:
|
|
properties:
|
|
host:
|
|
$ref: '#/definitions/schema.Host'
|
|
host_peers:
|
|
items:
|
|
$ref: '#/definitions/wgtypes.PeerConfig'
|
|
type: array
|
|
node:
|
|
$ref: '#/definitions/models.Node'
|
|
peerids:
|
|
$ref: '#/definitions/models.PeerMap'
|
|
peers:
|
|
items:
|
|
$ref: '#/definitions/wgtypes.PeerConfig'
|
|
type: array
|
|
serverconfig:
|
|
$ref: '#/definitions/models.ServerConfig'
|
|
type: object
|
|
models.NodeStatus:
|
|
enum:
|
|
- online
|
|
- offline
|
|
- warning
|
|
- error
|
|
- unknown
|
|
- disconnected
|
|
type: string
|
|
x-enum-varnames:
|
|
- OnlineSt
|
|
- OfflineSt
|
|
- WarningSt
|
|
- ErrorSt
|
|
- UnKnown
|
|
- Disconnected
|
|
models.PeerIdentity:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/models.PeerType'
|
|
type: object
|
|
models.PeerMap:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.IDandAddr'
|
|
type: object
|
|
models.PeerType:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
type: integer
|
|
x-enum-varnames:
|
|
- PeerType_Node
|
|
- PeerType_User
|
|
- PeerType_WireGuard
|
|
- PeerType_EgressRoute
|
|
models.Protocol:
|
|
enum:
|
|
- all
|
|
- udp
|
|
- tcp
|
|
- icmp
|
|
type: string
|
|
x-enum-varnames:
|
|
- ALL
|
|
- UDP
|
|
- TCP
|
|
- ICMP
|
|
models.ProtocolType:
|
|
properties:
|
|
allow_port_setting:
|
|
type: boolean
|
|
allowed_protocols:
|
|
items:
|
|
$ref: '#/definitions/models.Protocol'
|
|
type: array
|
|
name:
|
|
type: string
|
|
port_range:
|
|
type: string
|
|
type: object
|
|
models.RegisterResponse:
|
|
properties:
|
|
requested_host:
|
|
$ref: '#/definitions/schema.Host'
|
|
server_config:
|
|
$ref: '#/definitions/models.ServerConfig'
|
|
type: object
|
|
models.ReturnUser:
|
|
properties:
|
|
account_disabled:
|
|
type: boolean
|
|
auth_type:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
external_identity_provider_id:
|
|
type: string
|
|
is_mfa_enabled:
|
|
type: boolean
|
|
isadmin:
|
|
type: boolean
|
|
issuperadmin:
|
|
type: boolean
|
|
last_login_time:
|
|
type: string
|
|
network_roles:
|
|
additionalProperties:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
num_access_tokens:
|
|
type: integer
|
|
platform_role_id:
|
|
$ref: '#/definitions/schema.UserRoleID'
|
|
remote_gw_ids:
|
|
additionalProperties:
|
|
type: object
|
|
description: deprecated
|
|
type: object
|
|
updated_at:
|
|
type: string
|
|
user_group_ids:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
username:
|
|
type: string
|
|
type: object
|
|
models.ServerConfig:
|
|
properties:
|
|
Is_EE:
|
|
type: boolean
|
|
api:
|
|
type: string
|
|
apihost:
|
|
type: string
|
|
apiport:
|
|
type: string
|
|
broker:
|
|
type: string
|
|
brokerType:
|
|
type: string
|
|
coreDNSAddr:
|
|
type: string
|
|
defaultDomain:
|
|
type: string
|
|
dnsmode:
|
|
type: string
|
|
endpointDetection:
|
|
type: boolean
|
|
grpc:
|
|
type: string
|
|
ipdetectionInterval:
|
|
type: integer
|
|
manageDNS:
|
|
type: boolean
|
|
metricInterval:
|
|
type: string
|
|
metricsPort:
|
|
type: integer
|
|
mqpassword:
|
|
type: string
|
|
mqport:
|
|
type: string
|
|
mquserName:
|
|
type: string
|
|
peerConnectionCheckInterval:
|
|
type: string
|
|
server:
|
|
type: string
|
|
stun:
|
|
type: boolean
|
|
stunServers:
|
|
type: string
|
|
trafficKey:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
version:
|
|
type: string
|
|
type: object
|
|
models.ServerSettings:
|
|
properties:
|
|
allowed_email_domains:
|
|
type: string
|
|
audit_logs_retention_period:
|
|
type: integer
|
|
authprovider:
|
|
type: string
|
|
azure_tenant:
|
|
type: string
|
|
basic_auth:
|
|
type: boolean
|
|
clean_up_interval_in_mins:
|
|
type: integer
|
|
client_id:
|
|
type: string
|
|
client_secret:
|
|
type: string
|
|
default_domain:
|
|
type: string
|
|
email_sender_addr:
|
|
type: string
|
|
email_sender_password:
|
|
type: string
|
|
email_sender_user:
|
|
type: string
|
|
enable_flow_logs:
|
|
type: boolean
|
|
endpoint_detection:
|
|
type: boolean
|
|
google_admin_email:
|
|
type: string
|
|
google_sa_creds_json:
|
|
type: string
|
|
group_filters:
|
|
items:
|
|
type: string
|
|
type: array
|
|
idp_sync_interval:
|
|
type: string
|
|
ip_detection_interval:
|
|
description: IPDetectionInterval is the interval (in seconds) at which devices
|
|
check for changes in public ip.
|
|
type: integer
|
|
jwt_validity_duration:
|
|
description: |-
|
|
JwtValidityDuration is the validity duration of auth tokens for users
|
|
on the dashboard (NMUI).
|
|
type: integer
|
|
jwt_validity_duration_clients:
|
|
description: |-
|
|
JwtValidityDurationClients is the validity duration of auth tokens for
|
|
users on the clients (NetDesk).
|
|
type: integer
|
|
manage_dns:
|
|
type: boolean
|
|
metric_interval:
|
|
type: string
|
|
metrics_port:
|
|
type: integer
|
|
mfa_enforced:
|
|
type: boolean
|
|
netclientautoupdate:
|
|
type: boolean
|
|
oidcissuer:
|
|
type: string
|
|
okta_api_token:
|
|
type: string
|
|
okta_org_url:
|
|
type: string
|
|
peer_connection_check_interval:
|
|
type: string
|
|
posture_check_interval:
|
|
description: in minutes
|
|
type: string
|
|
rac_restrict_to_single_network:
|
|
type: boolean
|
|
smtp_host:
|
|
type: string
|
|
smtp_port:
|
|
type: integer
|
|
stun:
|
|
type: boolean
|
|
stun_servers:
|
|
type: string
|
|
sync_enabled:
|
|
type: boolean
|
|
telemetry:
|
|
type: string
|
|
user_filters:
|
|
items:
|
|
type: string
|
|
type: array
|
|
verbosity:
|
|
type: integer
|
|
type: object
|
|
models.Signal:
|
|
properties:
|
|
action:
|
|
$ref: '#/definitions/models.SignalAction'
|
|
auto_relay_node_metrics:
|
|
additionalProperties:
|
|
format: int64
|
|
type: integer
|
|
type: object
|
|
from_host_id:
|
|
type: string
|
|
from_host_pubkey:
|
|
type: string
|
|
from_node_id:
|
|
type: string
|
|
is_pro:
|
|
type: boolean
|
|
networkID:
|
|
type: string
|
|
reply:
|
|
type: boolean
|
|
server:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
to_host_id:
|
|
type: string
|
|
to_host_pubkey:
|
|
type: string
|
|
to_node_id:
|
|
type: string
|
|
type: object
|
|
models.SignalAction:
|
|
enum:
|
|
- CONNECTION_NEGOTIATION
|
|
- RELAY_ME
|
|
type: string
|
|
x-enum-varnames:
|
|
- ConnNegotiation
|
|
- RelayME
|
|
models.SuccessResponse:
|
|
properties:
|
|
code:
|
|
type: integer
|
|
message:
|
|
type: string
|
|
response: {}
|
|
type: object
|
|
models.SuccessfulUserLoginResponse:
|
|
properties:
|
|
authToken:
|
|
type: string
|
|
userName:
|
|
type: string
|
|
type: object
|
|
models.TOTPInitiateResponse:
|
|
properties:
|
|
otp_auth_url:
|
|
type: string
|
|
otp_auth_url_signature:
|
|
type: string
|
|
qr_code:
|
|
type: string
|
|
type: object
|
|
models.TagListRespNodes:
|
|
properties:
|
|
color_code:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
id:
|
|
type: string
|
|
network:
|
|
$ref: '#/definitions/schema.NetworkID'
|
|
tag_name:
|
|
type: string
|
|
tagged_nodes:
|
|
items:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
type: array
|
|
used_by_count:
|
|
type: integer
|
|
type: object
|
|
models.Theme:
|
|
enum:
|
|
- dark
|
|
- light
|
|
- system
|
|
type: string
|
|
x-enum-varnames:
|
|
- Dark
|
|
- Light
|
|
- System
|
|
models.TrafficKeys:
|
|
properties:
|
|
mine:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
server:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
models.UpdateAclRequest:
|
|
properties:
|
|
allowed_traffic_direction:
|
|
$ref: '#/definitions/models.AllowedTrafficDirection'
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
default:
|
|
type: boolean
|
|
dst_type:
|
|
items:
|
|
$ref: '#/definitions/models.AclPolicyTag'
|
|
type: array
|
|
enabled:
|
|
type: boolean
|
|
id:
|
|
type: string
|
|
meta_data:
|
|
type: string
|
|
name:
|
|
type: string
|
|
network_id:
|
|
$ref: '#/definitions/schema.NetworkID'
|
|
new_name:
|
|
type: string
|
|
policy_type:
|
|
$ref: '#/definitions/models.AclPolicyType'
|
|
ports:
|
|
items:
|
|
type: string
|
|
type: array
|
|
protocol:
|
|
allOf:
|
|
- $ref: '#/definitions/models.Protocol'
|
|
description: tcp, udp, etc.
|
|
src_type:
|
|
items:
|
|
$ref: '#/definitions/models.AclPolicyTag'
|
|
type: array
|
|
type:
|
|
type: string
|
|
type: object
|
|
models.UpdateTagReq:
|
|
properties:
|
|
color_code:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
id:
|
|
type: string
|
|
network:
|
|
$ref: '#/definitions/schema.NetworkID'
|
|
new_name:
|
|
type: string
|
|
tag_name:
|
|
type: string
|
|
tagged_nodes:
|
|
items:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
type: array
|
|
type: object
|
|
models.User:
|
|
properties:
|
|
account_disabled:
|
|
type: boolean
|
|
auth_type:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
external_identity_provider_id:
|
|
type: string
|
|
is_mfa_enabled:
|
|
type: boolean
|
|
isadmin:
|
|
description: deprecated
|
|
type: boolean
|
|
issuperadmin:
|
|
description: deprecated
|
|
type: boolean
|
|
last_login_time:
|
|
type: string
|
|
network_roles:
|
|
additionalProperties:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
password:
|
|
minLength: 5
|
|
type: string
|
|
platform_role_id:
|
|
$ref: '#/definitions/schema.UserRoleID'
|
|
remote_gw_ids:
|
|
additionalProperties:
|
|
type: object
|
|
description: deprecated
|
|
type: object
|
|
totp_secret:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
user_group_ids:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
username:
|
|
minLength: 3
|
|
type: string
|
|
required:
|
|
- password
|
|
type: object
|
|
models.UserAuthParams:
|
|
properties:
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
models.UserIPMap:
|
|
properties:
|
|
mappings:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.UserMapping'
|
|
type: object
|
|
type: object
|
|
models.UserIdentityValidationRequest:
|
|
properties:
|
|
password:
|
|
type: string
|
|
type: object
|
|
models.UserIdentityValidationResponse:
|
|
properties:
|
|
identity_validated:
|
|
type: boolean
|
|
type: object
|
|
models.UserInvite:
|
|
properties:
|
|
email:
|
|
type: string
|
|
invite_code:
|
|
type: string
|
|
invite_url:
|
|
type: string
|
|
network_roles:
|
|
additionalProperties:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
platform_role_id:
|
|
type: string
|
|
user_group_ids:
|
|
additionalProperties:
|
|
type: object
|
|
type: object
|
|
type: object
|
|
models.UserJITNetworkStatus:
|
|
properties:
|
|
grant:
|
|
description: schema.JITGrant
|
|
has_access:
|
|
type: boolean
|
|
jit_enabled:
|
|
type: boolean
|
|
network_id:
|
|
type: string
|
|
network_name:
|
|
type: string
|
|
pending_request:
|
|
type: boolean
|
|
request:
|
|
description: schema.JITRequest
|
|
type: object
|
|
models.UserMapping:
|
|
properties:
|
|
groups:
|
|
items:
|
|
type: string
|
|
type: array
|
|
user:
|
|
type: string
|
|
type: object
|
|
models.UserSettings:
|
|
properties:
|
|
reduced_motion:
|
|
type: boolean
|
|
text_size:
|
|
type: string
|
|
theme:
|
|
$ref: '#/definitions/models.Theme'
|
|
type: object
|
|
models.UserTOTPVerificationParams:
|
|
properties:
|
|
otp_auth_url:
|
|
type: string
|
|
otp_auth_url_signature:
|
|
type: string
|
|
totp:
|
|
type: string
|
|
type: object
|
|
models.Violation:
|
|
properties:
|
|
attribute:
|
|
type: string
|
|
check_id:
|
|
type: string
|
|
message:
|
|
type: string
|
|
name:
|
|
type: string
|
|
severity:
|
|
$ref: '#/definitions/schema.Severity'
|
|
type: object
|
|
net.IPNet:
|
|
properties:
|
|
ip:
|
|
description: network number
|
|
items:
|
|
type: integer
|
|
type: array
|
|
mask:
|
|
description: network mask
|
|
items:
|
|
format: int32
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
net.UDPAddr:
|
|
properties:
|
|
ip:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
port:
|
|
type: integer
|
|
zone:
|
|
description: IPv6 scoped addressing zone
|
|
type: string
|
|
type: object
|
|
schema.Action:
|
|
enum:
|
|
- CREATE
|
|
- UPDATE
|
|
- DELETE
|
|
- DELETE_ALL
|
|
- LOGIN
|
|
- LOGOUT
|
|
- CONNECT
|
|
- SYNC
|
|
- REFRESH_KEY
|
|
- REFRESH_ALL_KEYS
|
|
- SYNC_ALL
|
|
- UPGRADE_ALL
|
|
- DISCONNECT
|
|
- JOIN_HOST_TO_NETWORK
|
|
- REMOVE_HOST_FROM_NETWORK
|
|
- ENABLE_MFA
|
|
- DISABLE_MFA
|
|
- ENFORCE_MFA
|
|
- UNENFORCE_MFA
|
|
- ENABLE_BASIC_AUTH
|
|
- DISABLE_BASIC_AUTH
|
|
- ENABLE_TELEMETRY
|
|
- DISABLE_TELEMETRY
|
|
- UPDATE_CLIENT_SETTINGS
|
|
- UPDATE_AUTHENTICATION_SECURITY_SETTINGS
|
|
- UPDATE_MONITORING_AND_DEBUGGING_SETTINGS
|
|
- UPDATE_EMAIL_SETTINGS
|
|
- UPDATE_IDP_SETTINGS
|
|
- ENABLE_FLOW_LOGS
|
|
- DISABLE_FLOW_LOGS
|
|
- GATEWAY_ASSIGN
|
|
- GATEWAY_UNASSIGN
|
|
type: string
|
|
x-enum-varnames:
|
|
- Create
|
|
- Update
|
|
- Delete
|
|
- DeleteAll
|
|
- Login
|
|
- LogOut
|
|
- Connect
|
|
- Sync
|
|
- RefreshKey
|
|
- RefreshAllKeys
|
|
- SyncAll
|
|
- UpgradeAll
|
|
- Disconnect
|
|
- JoinHostToNet
|
|
- RemoveHostFromNet
|
|
- EnableMFA
|
|
- DisableMFA
|
|
- EnforceMFA
|
|
- UnenforceMFA
|
|
- EnableBasicAuth
|
|
- DisableBasicAuth
|
|
- EnableTelemetry
|
|
- DisableTelemetry
|
|
- UpdateClientSettings
|
|
- UpdateAuthenticationSecuritySettings
|
|
- UpdateMonitoringAndDebuggingSettings
|
|
- UpdateSMTPSettings
|
|
- UpdateIDPSettings
|
|
- EnableFlowLogs
|
|
- DisableFlowLogs
|
|
- GatewayAssign
|
|
- GatewayUnAssign
|
|
schema.AddrPort:
|
|
type: object
|
|
schema.Attribute:
|
|
enum:
|
|
- os
|
|
- os_version
|
|
- os_family
|
|
- kernel_version
|
|
- auto_update
|
|
- client_version
|
|
- client_location
|
|
type: string
|
|
x-enum-varnames:
|
|
- OS
|
|
- OSVersion
|
|
- OSFamily
|
|
- KernelVersion
|
|
- AutoUpdate
|
|
- ClientVersion
|
|
- ClientLocation
|
|
schema.Egress:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
description:
|
|
type: string
|
|
domain:
|
|
type: string
|
|
domain_ans:
|
|
items:
|
|
type: string
|
|
type: array
|
|
id:
|
|
type: string
|
|
mode:
|
|
$ref: '#/definitions/schema.EgressNATMode'
|
|
name:
|
|
type: string
|
|
nat:
|
|
type: boolean
|
|
network:
|
|
type: string
|
|
nodes:
|
|
$ref: '#/definitions/datatypes.JSONMap'
|
|
range:
|
|
type: string
|
|
status:
|
|
description: IsInetGw bool `gorm:"is_inet_gw" json:"is_internet_gateway"`
|
|
type: boolean
|
|
tags:
|
|
$ref: '#/definitions/datatypes.JSONMap'
|
|
updated_at:
|
|
type: string
|
|
virtual_range:
|
|
type: string
|
|
type: object
|
|
schema.EgressNATMode:
|
|
enum:
|
|
- virtual_nat
|
|
- direct_nat
|
|
type: string
|
|
x-enum-varnames:
|
|
- VirtualNAT
|
|
- DirectNAT
|
|
schema.Event:
|
|
properties:
|
|
action:
|
|
$ref: '#/definitions/schema.Action'
|
|
diff:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
id:
|
|
type: string
|
|
network_id:
|
|
$ref: '#/definitions/schema.NetworkID'
|
|
origin:
|
|
$ref: '#/definitions/schema.Origin'
|
|
source:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
target:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
time_stamp:
|
|
type: string
|
|
triggered_by:
|
|
type: string
|
|
type: object
|
|
schema.Host:
|
|
properties:
|
|
autoupdate:
|
|
type: boolean
|
|
country_code:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
daemoninstalled:
|
|
type: boolean
|
|
debug:
|
|
type: boolean
|
|
defaultinterface:
|
|
type: string
|
|
dns_status:
|
|
type: string
|
|
enable_flow_logs:
|
|
type: boolean
|
|
endpointip:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
endpointipv6:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
firewallinuse:
|
|
type: string
|
|
hostpass:
|
|
type: string
|
|
id:
|
|
type: string
|
|
interface:
|
|
type: string
|
|
interfaces:
|
|
items:
|
|
$ref: '#/definitions/schema.Iface'
|
|
type: array
|
|
ipforwarding:
|
|
type: boolean
|
|
isdefault:
|
|
type: boolean
|
|
isdocker:
|
|
type: boolean
|
|
isk8s:
|
|
type: boolean
|
|
isstatic:
|
|
type: boolean
|
|
isstaticport:
|
|
type: boolean
|
|
kernel_version:
|
|
type: string
|
|
listenport:
|
|
type: integer
|
|
location:
|
|
description: 'Format: "lat,lon"'
|
|
type: string
|
|
macaddress:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
mtu:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
nat_type:
|
|
type: string
|
|
nodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
os:
|
|
type: string
|
|
os_family:
|
|
type: string
|
|
os_version:
|
|
type: string
|
|
persistentkeepalive:
|
|
format: int64
|
|
type: integer
|
|
publickey:
|
|
$ref: '#/definitions/schema.WgKey'
|
|
traffickeypublic:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
turn_endpoint:
|
|
$ref: '#/definitions/schema.AddrPort'
|
|
updated_at:
|
|
type: string
|
|
verbosity:
|
|
type: integer
|
|
version:
|
|
type: string
|
|
wg_public_listen_port:
|
|
type: integer
|
|
type: object
|
|
schema.Iface:
|
|
properties:
|
|
address:
|
|
$ref: '#/definitions/net.IPNet'
|
|
addressString:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
schema.JITRequest:
|
|
properties:
|
|
approved_at:
|
|
type: string
|
|
approved_by:
|
|
type: string
|
|
duration_hours:
|
|
type: integer
|
|
expires_at:
|
|
type: string
|
|
id:
|
|
type: string
|
|
network_id:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
requested_at:
|
|
type: string
|
|
revoked_at:
|
|
type: string
|
|
status:
|
|
description: pending, approved, denied, expired
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
user_name:
|
|
type: string
|
|
type: object
|
|
schema.Nameserver:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
default:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
domains:
|
|
items:
|
|
$ref: '#/definitions/schema.NameserverDomain'
|
|
type: array
|
|
fallback:
|
|
type: boolean
|
|
id:
|
|
type: string
|
|
match_all:
|
|
type: boolean
|
|
match_domains:
|
|
description: 'TODO: deprecate'
|
|
items:
|
|
type: string
|
|
type: array
|
|
name:
|
|
type: string
|
|
network_id:
|
|
type: string
|
|
nodes:
|
|
$ref: '#/definitions/datatypes.JSONMap'
|
|
servers:
|
|
items:
|
|
type: string
|
|
type: array
|
|
status:
|
|
type: boolean
|
|
tags:
|
|
$ref: '#/definitions/datatypes.JSONMap'
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
schema.NameserverDomain:
|
|
properties:
|
|
domain:
|
|
type: string
|
|
is_ad_domain:
|
|
type: boolean
|
|
is_search_domain:
|
|
type: boolean
|
|
type: object
|
|
schema.Network:
|
|
properties:
|
|
addressrange:
|
|
type: string
|
|
addressrange6:
|
|
type: string
|
|
auto_join:
|
|
type: boolean
|
|
auto_remove:
|
|
type: boolean
|
|
auto_remove_tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
auto_remove_threshold:
|
|
description: in minutes
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
defaultkeepalive:
|
|
description: in seconds.
|
|
type: integer
|
|
defaultmtu:
|
|
type: integer
|
|
id:
|
|
type: string
|
|
jit_enabled:
|
|
type: boolean
|
|
netid:
|
|
type: string
|
|
nodes_updated_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
virtual_nat_pool_ipv4:
|
|
type: string
|
|
virtual_nat_site_prefixlen_ipv4:
|
|
type: integer
|
|
type: object
|
|
schema.NetworkID:
|
|
enum:
|
|
- all_networks
|
|
type: string
|
|
x-enum-varnames:
|
|
- AllNetworks
|
|
schema.Origin:
|
|
enum:
|
|
- DASHBOARD
|
|
- API
|
|
- NMCTL
|
|
- CLIENT-APP
|
|
type: string
|
|
x-enum-varnames:
|
|
- Dashboard
|
|
- Api
|
|
- NMCTL
|
|
- ClientApp
|
|
schema.PendingHost:
|
|
properties:
|
|
enrollment_key_id:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
host_id:
|
|
type: string
|
|
host_name:
|
|
type: string
|
|
id:
|
|
type: string
|
|
location:
|
|
description: 'Format: "lat,lon"'
|
|
type: string
|
|
network:
|
|
type: string
|
|
os:
|
|
type: string
|
|
public_key:
|
|
type: string
|
|
requested_at:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
schema.PostureCheck:
|
|
properties:
|
|
attribute:
|
|
$ref: '#/definitions/schema.Attribute'
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
description:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
network_id:
|
|
$ref: '#/definitions/schema.NetworkID'
|
|
severity:
|
|
$ref: '#/definitions/schema.Severity'
|
|
status:
|
|
type: boolean
|
|
tags:
|
|
$ref: '#/definitions/datatypes.JSONMap'
|
|
updated_at:
|
|
type: string
|
|
user_groups:
|
|
$ref: '#/definitions/datatypes.JSONMap'
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
schema.Severity:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
type: integer
|
|
x-enum-varnames:
|
|
- SeverityUnknown
|
|
- SeverityLow
|
|
- SeverityMedium
|
|
- SeverityHigh
|
|
- SeverityCritical
|
|
schema.UserAccessToken:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
expires_at:
|
|
type: string
|
|
id:
|
|
type: string
|
|
last_used:
|
|
type: string
|
|
name:
|
|
type: string
|
|
user_name:
|
|
type: string
|
|
type: object
|
|
schema.UserGroup:
|
|
properties:
|
|
color_code:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
default:
|
|
type: boolean
|
|
external_identity_provider_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
meta_data:
|
|
type: string
|
|
name:
|
|
type: string
|
|
network_roles:
|
|
$ref: '#/definitions/datatypes.JSONType-schema_NetworkRoles'
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
schema.UserRole:
|
|
properties:
|
|
default:
|
|
type: boolean
|
|
deny_dashboard_access:
|
|
type: boolean
|
|
full_access:
|
|
type: boolean
|
|
global_level_access:
|
|
$ref: '#/definitions/datatypes.JSONType-schema_ResourceAccess'
|
|
id:
|
|
$ref: '#/definitions/schema.UserRoleID'
|
|
meta_data:
|
|
type: string
|
|
name:
|
|
type: string
|
|
network_id:
|
|
$ref: '#/definitions/schema.NetworkID'
|
|
network_level_access:
|
|
$ref: '#/definitions/datatypes.JSONType-schema_ResourceAccess'
|
|
type: object
|
|
schema.UserRoleID:
|
|
enum:
|
|
- super-admin
|
|
- admin
|
|
- service-user
|
|
- platform-user
|
|
- auditor
|
|
- network-admin
|
|
- network-user
|
|
type: string
|
|
x-enum-varnames:
|
|
- SuperAdminRole
|
|
- AdminRole
|
|
- ServiceUser
|
|
- PlatformUser
|
|
- Auditor
|
|
- NetworkAdmin
|
|
- NetworkUser
|
|
schema.WgKey:
|
|
properties:
|
|
wgtypes.Key:
|
|
items:
|
|
format: int32
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
wgtypes.PeerConfig:
|
|
properties:
|
|
allowedIPs:
|
|
description: |-
|
|
AllowedIPs specifies a list of allowed IP addresses in CIDR notation
|
|
for this peer.
|
|
items:
|
|
$ref: '#/definitions/net.IPNet'
|
|
type: array
|
|
endpoint:
|
|
allOf:
|
|
- $ref: '#/definitions/net.UDPAddr'
|
|
description: Endpoint specifies the endpoint of this peer entry, if not nil.
|
|
persistentKeepaliveInterval:
|
|
description: |-
|
|
PersistentKeepaliveInterval specifies the persistent keepalive interval
|
|
for this peer, if not nil.
|
|
|
|
A non-nil value of 0 will clear the persistent keepalive interval.
|
|
format: int64
|
|
type: integer
|
|
presharedKey:
|
|
description: |-
|
|
PresharedKey specifies a peer's preshared key configuration, if not nil.
|
|
|
|
A non-nil, zero-value Key will clear the preshared key.
|
|
items:
|
|
format: int32
|
|
type: integer
|
|
type: array
|
|
publicKey:
|
|
description: |-
|
|
PublicKey specifies the public key of this peer. PublicKey is a
|
|
mandatory field for all PeerConfigs.
|
|
items:
|
|
format: int32
|
|
type: integer
|
|
type: array
|
|
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
|
|
type: object
|
|
host: api.demo.netmaker.io
|
|
info:
|
|
contact: {}
|
|
description: NetMaker API Docs
|
|
title: NetMaker
|
|
version: 1.5.1
|
|
paths:
|
|
/api/dns:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.DNSEntry'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get all DNS entries
|
|
tags:
|
|
- DNS
|
|
/api/dns/{network}:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network identifier
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: DNS entry details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.DNSEntry'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.DNSEntry'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create a new DNS entry
|
|
tags:
|
|
- DNS
|
|
/api/dns/{network}/{domain}:
|
|
delete:
|
|
parameters:
|
|
- description: Network identifier
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Domain Name
|
|
in: path
|
|
name: domain
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete a DNS entry
|
|
tags:
|
|
- DNS
|
|
/api/dns/adm/{network}:
|
|
get:
|
|
parameters:
|
|
- description: Network identifier
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.DNSEntry'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get all DNS entries associated with the network
|
|
tags:
|
|
- DNS
|
|
/api/dns/adm/{network}/custom:
|
|
get:
|
|
parameters:
|
|
- description: Network identifier
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.DNSEntry'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Gets custom DNS entries associated with a network
|
|
tags:
|
|
- DNS
|
|
/api/dns/adm/{network}/nodes:
|
|
get:
|
|
parameters:
|
|
- description: Network identifier
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.DNSEntry'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Gets node DNS entries associated with a network
|
|
tags:
|
|
- DNS
|
|
/api/dns/adm/{network}/sync:
|
|
post:
|
|
parameters:
|
|
- description: Network identifier
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: DNS Sync completed successfully
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Sync DNS entries for a given network
|
|
tags:
|
|
- DNS
|
|
/api/dns/adm/pushdns:
|
|
post:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: DNS Pushed to CoreDNS
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Push DNS entries to nameserver
|
|
tags:
|
|
- DNS
|
|
/api/extclients:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ExtClient'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Fetch all config files across all networks
|
|
tags:
|
|
- Config Files
|
|
/api/extclients/{network}:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ExtClient'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get all config files associated with network
|
|
tags:
|
|
- Config Files
|
|
/api/extclients/{network}/{clientid}:
|
|
delete:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Client ID
|
|
in: path
|
|
name: clientid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete a config file
|
|
tags:
|
|
- Config Files
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Client ID
|
|
in: path
|
|
name: clientid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ExtClient'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get an individual config file
|
|
tags:
|
|
- Config Files
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Client ID
|
|
in: path
|
|
name: clientid
|
|
required: true
|
|
type: string
|
|
- description: Custom ext client update
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.CustomExtClient'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ExtClient'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update a config file
|
|
tags:
|
|
- Config Files
|
|
/api/extclients/{network}/{clientid}/{type}:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Client ID
|
|
in: path
|
|
name: clientid
|
|
required: true
|
|
type: string
|
|
- description: Config type (qr or file)
|
|
in: path
|
|
name: type
|
|
required: true
|
|
type: string
|
|
- description: Preferred endpoint IP
|
|
in: query
|
|
name: preferredip
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ExtClient'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get config file configuration
|
|
tags:
|
|
- Config Files
|
|
/api/extclients/{network}/{nodeid}:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID (Ingress Gateway)
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: Custom ext client parameters
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.CustomExtClient'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ExtClient'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create a config file
|
|
tags:
|
|
- Config Files
|
|
/api/getip:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The public IP address.
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Invalid IP address or no IP found.
|
|
schema:
|
|
type: string
|
|
summary: Get the current public IP address.
|
|
tags:
|
|
- IP Service
|
|
/api/hosts:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ApiHost'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List all hosts
|
|
tags:
|
|
- Hosts
|
|
/api/hosts/{hostid}:
|
|
delete:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
- description: Force delete
|
|
in: query
|
|
name: force
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiHost'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Deletes a Netclient host from Netmaker server
|
|
tags:
|
|
- Hosts
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
- description: New host data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ApiHost'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiHost'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Updates a Netclient host on Netmaker server
|
|
tags:
|
|
- Hosts
|
|
/api/hosts/{hostid}/keys:
|
|
put:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update keys for a host
|
|
tags:
|
|
- Hosts
|
|
/api/hosts/{hostid}/networks/{network}:
|
|
delete:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
- description: Network name
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Force delete
|
|
in: query
|
|
name: force
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: To Remove Host from Network
|
|
tags:
|
|
- Hosts
|
|
post:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
- description: Network name
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: To Add Host To Network
|
|
tags:
|
|
- Hosts
|
|
/api/hosts/{hostid}/sync:
|
|
post:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Requests a host to pull
|
|
tags:
|
|
- Hosts
|
|
/api/hosts/{hostid}/upgrade:
|
|
put:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
- description: Force upgrade
|
|
in: query
|
|
name: force
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: passed message to upgrade host
|
|
schema:
|
|
type: string
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Upgrade a host
|
|
tags:
|
|
- Hosts
|
|
/api/hosts/adm/authenticate:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Authentication parameters
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.AuthParams'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: To Fetch Auth Token for a Host
|
|
tags:
|
|
- Auth
|
|
/api/hosts/keys:
|
|
put:
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update keys for all hosts
|
|
tags:
|
|
- Hosts
|
|
/api/hosts/sync:
|
|
post:
|
|
responses:
|
|
"200":
|
|
description: sync all hosts request received
|
|
schema:
|
|
type: string
|
|
security:
|
|
- oauth: []
|
|
summary: Requests all the hosts to pull
|
|
tags:
|
|
- Hosts
|
|
/api/hosts/upgrade:
|
|
post:
|
|
parameters:
|
|
- description: Force upgrade
|
|
in: query
|
|
name: force
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: upgrade all hosts request received
|
|
schema:
|
|
type: string
|
|
security:
|
|
- oauth: []
|
|
summary: Requests all the hosts to upgrade their version
|
|
tags:
|
|
- Hosts
|
|
/api/idp:
|
|
delete:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Remove IDP integration
|
|
tags:
|
|
- IDP
|
|
/api/idp/sync:
|
|
post:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Sync users and groups from IDP
|
|
tags:
|
|
- IDP
|
|
/api/idp/sync/status:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.IDPSyncStatus'
|
|
security:
|
|
- oauth: []
|
|
summary: Get IDP sync status
|
|
tags:
|
|
- IDP
|
|
/api/idp/sync/test:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: IDP sync test request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.IDPSyncTestRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Test IDP Sync Credentials
|
|
tags:
|
|
- IDP
|
|
/api/metrics:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.NetworkMetrics'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get metrics for all nodes on server
|
|
tags:
|
|
- Metrics
|
|
/api/metrics-ext/{network}:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Metrics'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get metrics for external clients in a network
|
|
tags:
|
|
- Metrics
|
|
/api/metrics/{network}:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.NetworkMetrics'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get metrics for all nodes in a network
|
|
tags:
|
|
- Metrics
|
|
/api/metrics/{network}/{nodeid}:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Metrics'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get metrics for a specific node
|
|
tags:
|
|
- Metrics
|
|
/api/networks:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.Network'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Lists all networks
|
|
tags:
|
|
- Networks
|
|
post:
|
|
parameters:
|
|
- description: Network details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.Network'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.Network'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create a network
|
|
tags:
|
|
- Networks
|
|
/api/networks/{networkname}:
|
|
delete:
|
|
parameters:
|
|
- description: Network name
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
- description: Force Delete
|
|
in: query
|
|
name: force
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete a network
|
|
tags:
|
|
- Networks
|
|
get:
|
|
parameters:
|
|
- description: Network name
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.Network'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get a network
|
|
tags:
|
|
- Networks
|
|
put:
|
|
parameters:
|
|
- description: Network name
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
- description: Network details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.Network'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.Network'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update network settings
|
|
tags:
|
|
- Networks
|
|
/api/networks/{networkname}/egress_routes:
|
|
get:
|
|
parameters:
|
|
- description: Network name
|
|
in: path
|
|
name: networkname
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get a network Egress routes
|
|
tags:
|
|
- Networks
|
|
/api/nodes:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get all nodes across all networks
|
|
tags:
|
|
- Nodes
|
|
/api/nodes/{network}:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Gets all nodes associated with network including pending nodes
|
|
tags:
|
|
- Nodes
|
|
/api/nodes/{network}/{nodeid}:
|
|
delete:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: Force delete
|
|
in: query
|
|
name: force
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete an individual node
|
|
tags:
|
|
- Nodes
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.NodeGet'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get an individual node
|
|
tags:
|
|
- Nodes
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: Node update data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update an individual node
|
|
tags:
|
|
- Nodes
|
|
/api/nodes/{network}/{nodeid}/creategateway:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: Egress gateway request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.EgressGatewayRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create an egress gateway
|
|
tags:
|
|
- Nodes
|
|
/api/nodes/{network}/{nodeid}/deletegateway:
|
|
delete:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete an egress gateway
|
|
tags:
|
|
- Nodes
|
|
/api/nodes/{network}/{nodeid}/gateway:
|
|
delete:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete a gateway
|
|
tags:
|
|
- Gateways
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: Gateway request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.CreateGwReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create a gateway
|
|
tags:
|
|
- Gateways
|
|
/api/nodes/{network}/{nodeid}/gateway/assign:
|
|
post:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Client node ID to assign to gateway
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: Gateway node ID
|
|
in: query
|
|
name: gw_id
|
|
required: true
|
|
type: string
|
|
- description: Enable auto-assign gateway (Pro only)
|
|
in: query
|
|
name: auto_assign_gw
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Assign a node to a gateway
|
|
tags:
|
|
- Gateways
|
|
/api/nodes/{network}/{nodeid}/gateway/unassign:
|
|
post:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Unassign client nodes from a gateway
|
|
tags:
|
|
- Gateways
|
|
/api/server/feature_flags:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.FeatureFlags'
|
|
summary: Get feature flags for this server
|
|
tags:
|
|
- Server
|
|
/api/server/getconfig:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ServerConfig'
|
|
security:
|
|
- oauth: []
|
|
summary: Get the server configuration
|
|
tags:
|
|
- Server
|
|
/api/server/getserverinfo:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ServerConfig'
|
|
security:
|
|
- oauth: []
|
|
summary: Get the server information
|
|
tags:
|
|
- Server
|
|
/api/server/settings:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ServerSettings'
|
|
security:
|
|
- oauth: []
|
|
summary: Get the server settings
|
|
tags:
|
|
- Server
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Server settings
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ServerSettings'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ServerSettings'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update the server settings
|
|
tags:
|
|
- Server
|
|
/api/server/status:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Server status
|
|
schema:
|
|
type: object
|
|
summary: Get the server status
|
|
tags:
|
|
- Server
|
|
/api/users:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get all users
|
|
tags:
|
|
- Users
|
|
/api/users/{username}:
|
|
delete:
|
|
parameters:
|
|
- description: Username of the user to delete
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Force delete configs
|
|
in: query
|
|
name: force_delete_configs
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete a user
|
|
tags:
|
|
- Users
|
|
get:
|
|
parameters:
|
|
- description: Username of the user to fetch
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get an individual user
|
|
tags:
|
|
- Users
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Username of the user to create
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: User details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create a user
|
|
tags:
|
|
- Users
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Username of the user to update
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: User details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update a user
|
|
tags:
|
|
- Users
|
|
/api/users/{username}/auth/complete-totp:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: TOTP verification parameters
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UserTOTPVerificationParams'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Verify and complete setting up TOTP 2FA for a user
|
|
tags:
|
|
- Auth
|
|
/api/users/{username}/auth/init-totp:
|
|
post:
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.TOTPInitiateResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Initiate setting up TOTP 2FA for a user
|
|
tags:
|
|
- Auth
|
|
/api/users/{username}/auth/verify-totp:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: TOTP verification parameters
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UserTOTPVerificationParams'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessfulUserLoginResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Verify a user's TOTP token
|
|
tags:
|
|
- Auth
|
|
/api/users/{username}/disable:
|
|
post:
|
|
parameters:
|
|
- description: Username of the user to disable
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Force disable configs
|
|
in: query
|
|
name: force_disable_configs
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Disable a user's account
|
|
tags:
|
|
- Users
|
|
/api/users/{username}/enable:
|
|
post:
|
|
parameters:
|
|
- description: Username of the user to enable
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Force enable configs
|
|
in: query
|
|
name: force_enable_configs
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Enable a user's account
|
|
tags:
|
|
- Users
|
|
/api/users/{username}/remote_access_gw:
|
|
get:
|
|
parameters:
|
|
- description: Username to fetch all the gateways with access
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Device ID
|
|
in: query
|
|
name: device_id
|
|
type: string
|
|
- description: Remote access client ID
|
|
in: query
|
|
name: remote_access_clientid
|
|
type: string
|
|
- description: If 'true', returns array format
|
|
in: query
|
|
name: from_mobile
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get user remote access gateways
|
|
tags:
|
|
- Users
|
|
/api/users/{username}/remote_access_gw/{remote_access_gateway_id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Remote Access Gateway ID
|
|
in: path
|
|
name: remote_access_gateway_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Remove user from a remote access gateway
|
|
tags:
|
|
- Users
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Remote Access Gateway ID
|
|
in: path
|
|
name: remote_access_gateway_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Attach user to a remote access gateway
|
|
tags:
|
|
- Users
|
|
/api/users/{username}/settings:
|
|
get:
|
|
parameters:
|
|
- description: Username of the user
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.UserSettings'
|
|
security:
|
|
- oauth: []
|
|
summary: Get a user's preferences and settings
|
|
tags:
|
|
- Users
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Username of the user
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: User settings
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UserSettings'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.UserSettings'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update a user's preferences and settings
|
|
tags:
|
|
- Users
|
|
/api/users/{username}/validate-identity:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: User Identity Validation Request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UserIdentityValidationRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.UserIdentityValidationResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Validate a user's identity
|
|
tags:
|
|
- Users
|
|
/api/users/adm/authenticate:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Authentication parameters
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UserAuthParams'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Authenticate a user to retrieve an authorization token
|
|
tags:
|
|
- Auth
|
|
/api/users/adm/createsuperadmin:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: User details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Create a super admin
|
|
tags:
|
|
- Users
|
|
/api/users/adm/hassuperadmin:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: boolean
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Check if the server has a super admin
|
|
tags:
|
|
- Users
|
|
/api/users/adm/transfersuperadmin/{username}:
|
|
post:
|
|
parameters:
|
|
- description: Username of the user to transfer super admin role
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Transfer super admin role to another admin user
|
|
tags:
|
|
- Users
|
|
/api/users/ingress/{ingress_id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Ingress Gateway ID
|
|
in: path
|
|
name: ingress_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.IngressGwUsers'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List users attached to a remote access gateway
|
|
tags:
|
|
- Users
|
|
/api/users_pending:
|
|
delete:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete all pending users
|
|
tags:
|
|
- Users
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get all pending users
|
|
tags:
|
|
- Users
|
|
/api/users_pending/user/{username}:
|
|
delete:
|
|
parameters:
|
|
- description: Username of the pending user to delete
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete a pending user
|
|
tags:
|
|
- Users
|
|
post:
|
|
parameters:
|
|
- description: Username of the pending user to approve
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Approve a pending user
|
|
tags:
|
|
- Users
|
|
/api/v1/acls:
|
|
delete:
|
|
parameters:
|
|
- description: ACL ID
|
|
in: query
|
|
name: acl_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete Acl
|
|
tags:
|
|
- ACL
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Acl'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Acls in a network
|
|
tags:
|
|
- ACL
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ACL policy details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Acl'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Acl'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create Acl
|
|
tags:
|
|
- ACL
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ACL update details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UpdateAclRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update Acl
|
|
tags:
|
|
- ACL
|
|
/api/v1/acls/egress:
|
|
get:
|
|
parameters:
|
|
- description: Egress ID
|
|
in: query
|
|
name: egress_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Acl'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Egress Acls
|
|
tags:
|
|
- ACL
|
|
/api/v1/acls/policy_types:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.AclPolicyTypes'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Acl Policy types
|
|
tags:
|
|
- ACL
|
|
/api/v1/activity:
|
|
get:
|
|
parameters:
|
|
- description: Filter by username
|
|
in: query
|
|
name: username
|
|
type: string
|
|
- description: Filter by network ID
|
|
in: query
|
|
name: network_id
|
|
type: string
|
|
- description: Start date in RFC3339 format
|
|
in: query
|
|
name: from_date
|
|
type: string
|
|
- description: End date in RFC3339 format
|
|
in: query
|
|
name: to_date
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.Event'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List all activity
|
|
tags:
|
|
- Activity
|
|
/api/v1/client_conf/{network}:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: WireGuard config file
|
|
schema:
|
|
type: string
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get config file HA configuration
|
|
tags:
|
|
- Config Files
|
|
/api/v1/egress:
|
|
delete:
|
|
parameters:
|
|
- description: Egress resource ID
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete Egress Resource
|
|
tags:
|
|
- Egress
|
|
get:
|
|
parameters:
|
|
- description: Network identifier
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.Egress'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Egress Resources
|
|
tags:
|
|
- Egress
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Egress request data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.EgressReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.Egress'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create Egress Resource
|
|
tags:
|
|
- Egress
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Egress request data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.EgressReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.Egress'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update Egress Resource
|
|
tags:
|
|
- Egress
|
|
/api/v1/enrollment-keys:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.EnrollmentKey'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Lists all EnrollmentKeys for admins
|
|
tags:
|
|
- EnrollmentKeys
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Enrollment Key parameters
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.APIEnrollmentKey'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.EnrollmentKey'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Creates an EnrollmentKey for hosts to register with server and join
|
|
networks
|
|
tags:
|
|
- EnrollmentKeys
|
|
/api/v1/enrollment-keys/{keyID}:
|
|
delete:
|
|
parameters:
|
|
- description: Enrollment Key ID
|
|
in: path
|
|
name: keyID
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Deletes an EnrollmentKey from Netmaker server
|
|
tags:
|
|
- EnrollmentKeys
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Enrollment Key ID
|
|
in: path
|
|
name: keyID
|
|
required: true
|
|
type: string
|
|
- description: Enrollment Key parameters
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.APIEnrollmentKey'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.EnrollmentKey'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Updates an EnrollmentKey
|
|
tags:
|
|
- EnrollmentKeys
|
|
/api/v1/extclients/{network}/bulk:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: List of ext client IDs to delete
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkDeleteRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Bulk delete ext clients
|
|
tags:
|
|
- Config Files
|
|
/api/v1/extclients/{network}/bulk/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Client IDs and desired enabled state
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkExtClientStatusUpdate'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Bulk update ext client enabled status
|
|
tags:
|
|
- Config Files
|
|
/api/v1/fallback/host/{hostid}:
|
|
put:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
- description: Host update data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.HostUpdate'
|
|
responses:
|
|
"200":
|
|
description: updated host data
|
|
schema:
|
|
type: string
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Updates a Netclient host on Netmaker server
|
|
tags:
|
|
- Hosts
|
|
/api/v1/flows:
|
|
get:
|
|
parameters:
|
|
- description: Filter by network ID
|
|
in: query
|
|
name: network_id
|
|
type: string
|
|
- description: Start time in RFC3339 format
|
|
in: query
|
|
name: from
|
|
type: string
|
|
- description: End time in RFC3339 format
|
|
in: query
|
|
name: to
|
|
type: string
|
|
- description: Source type filter
|
|
in: query
|
|
name: src_type
|
|
type: string
|
|
- description: Source entity ID filter
|
|
in: query
|
|
name: src_entity_id
|
|
type: string
|
|
- description: Destination type filter
|
|
in: query
|
|
name: dst_type
|
|
type: string
|
|
- description: Destination entity ID filter
|
|
in: query
|
|
name: dst_entity_id
|
|
type: string
|
|
- description: Protocol filter
|
|
in: query
|
|
name: protocol
|
|
type: string
|
|
- description: Node ID filter
|
|
in: query
|
|
name: node_id
|
|
type: string
|
|
- description: Username filter
|
|
in: query
|
|
name: username
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page (max 1000)
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/controllers.FlowRow'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List flow logs
|
|
tags:
|
|
- Traffic Logs
|
|
/api/v1/host:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.HostPull'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Used by clients for "pull" command
|
|
tags:
|
|
- Hosts
|
|
/api/v1/host/{hostid}/peer_info:
|
|
get:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.HostPeerInfo'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Fetches host peerinfo
|
|
tags:
|
|
- Hosts
|
|
/api/v1/host/{hostid}/signalpeer:
|
|
post:
|
|
parameters:
|
|
- description: Host ID
|
|
in: path
|
|
name: hostid
|
|
required: true
|
|
type: string
|
|
- description: Signal data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Signal'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Signal'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Send signal to peer
|
|
tags:
|
|
- Hosts
|
|
/api/v1/host/register/{token}:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Enrollment Key Token
|
|
in: path
|
|
name: token
|
|
required: true
|
|
type: string
|
|
- description: Host registration parameters
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.Host'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.RegisterResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Handles a Netclient registration with server and add nodes accordingly
|
|
tags:
|
|
- EnrollmentKeys
|
|
/api/v1/hosts:
|
|
get:
|
|
parameters:
|
|
- collectionFormat: csv
|
|
description: Filter by OS
|
|
in: query
|
|
items:
|
|
enum:
|
|
- windows
|
|
- linux
|
|
- darwin
|
|
type: string
|
|
name: os
|
|
type: array
|
|
- description: Search across fields
|
|
in: query
|
|
name: q
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ApiHost'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List all hosts
|
|
tags:
|
|
- Hosts
|
|
/api/v1/hosts/bulk:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: List of host IDs to delete
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkDeleteRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Bulk delete hosts
|
|
tags:
|
|
- Hosts
|
|
/api/v1/jit:
|
|
delete:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Grant ID to revoke
|
|
in: query
|
|
name: grant_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete/revoke a JIT grant
|
|
tags:
|
|
- JIT
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Filter by status (pending, approved, denied, expired)
|
|
in: query
|
|
name: status
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: JIT operation request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.JITOperationRequest'
|
|
produces:
|
|
- application/json
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
- oauth: []
|
|
summary: Handle JIT operations (enable, disable, approve, deny)
|
|
tags:
|
|
- JIT
|
|
- JIT
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Filter by status (pending, approved, denied, expired)
|
|
in: query
|
|
name: status
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: JIT operation request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.JITOperationRequest'
|
|
produces:
|
|
- application/json
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
- oauth: []
|
|
summary: Handle JIT operations (enable, disable, approve, deny)
|
|
tags:
|
|
- JIT
|
|
- JIT
|
|
/api/v1/jit_user/networks:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.UserJITNetworkStatus'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get user JIT networks status
|
|
tags:
|
|
- JIT
|
|
/api/v1/jit_user/request:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: JIT access request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.JITAccessRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.JITRequest'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Request JIT access to a network
|
|
tags:
|
|
- JIT
|
|
/api/v1/legacy/nodes:
|
|
delete:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Wiped all legacy nodes.
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete all legacy nodes from DB.
|
|
tags:
|
|
- Nodes
|
|
/api/v1/nameserver:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Nameserver ID
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete Nameserver Resource
|
|
tags:
|
|
- DNS
|
|
get:
|
|
parameters:
|
|
- description: Network identifier
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.Nameserver'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Nameservers
|
|
tags:
|
|
- DNS
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Nameserver request body
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.NameserverReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.Nameserver'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create Nameserver
|
|
tags:
|
|
- DNS
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Nameserver request body
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.NameserverReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.Nameserver'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update Nameserver
|
|
tags:
|
|
- DNS
|
|
/api/v1/nameserver/global:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
$ref: '#/definitions/schema.Nameserver'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Global Nameservers
|
|
tags:
|
|
- DNS
|
|
/api/v1/network/activity:
|
|
get:
|
|
parameters:
|
|
- description: Network ID required to get the network events
|
|
in: query
|
|
name: network_id
|
|
required: true
|
|
type: string
|
|
- description: Start date in RFC3339 format
|
|
in: query
|
|
name: from_date
|
|
type: string
|
|
- description: End date in RFC3339 format
|
|
in: query
|
|
name: to_date
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.Event'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List network activity
|
|
tags:
|
|
- Activity
|
|
/api/v1/networks/{network}/graph:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get network topology graph
|
|
tags:
|
|
- Networks
|
|
/api/v1/networks/stats:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.Network'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Lists all networks with stats
|
|
tags:
|
|
- Networks
|
|
/api/v1/node/{network}/auto_relay/reset:
|
|
post:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Reset AutoRelay for a network
|
|
tags:
|
|
- Auto Relay
|
|
/api/v1/node/{nodeid}/auto_relay:
|
|
delete:
|
|
parameters:
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Node'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete autorelay node
|
|
tags:
|
|
- Auto Relay
|
|
get:
|
|
parameters:
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Node'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get auto relay nodes
|
|
tags:
|
|
- Auto Relay
|
|
post:
|
|
parameters:
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Node'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create AutoRelay node
|
|
tags:
|
|
- Auto Relay
|
|
/api/v1/node/{nodeid}/auto_relay_check:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: autorelay request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.AutoRelayMeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Check AutoRelay context
|
|
tags:
|
|
- Auto Relay
|
|
/api/v1/node/{nodeid}/auto_relay_me:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: AutoRelay request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.AutoRelayMeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: AutoRelay me
|
|
tags:
|
|
- Auto Relay
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Node ID
|
|
in: path
|
|
name: nodeid
|
|
required: true
|
|
type: string
|
|
- description: AutoRelay request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.AutoRelayMeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update AutoRelay me
|
|
tags:
|
|
- Auto Relay
|
|
/api/v1/nodes/{network}/bulk:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: List of node IDs to delete
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkDeleteRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Bulk delete nodes
|
|
tags:
|
|
- Nodes
|
|
/api/v1/nodes/{network}/bulk/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Node IDs and desired connected state
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkNodeStatusUpdate'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Bulk update node connected status
|
|
tags:
|
|
- Nodes
|
|
/api/v1/nodes/{network}/status:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: path
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
$ref: '#/definitions/models.NodeStatus'
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get all nodes status on the network
|
|
tags:
|
|
- Nodes
|
|
/api/v1/nodes/migrate:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Migration data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.MigrationData'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.HostPull'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Used to migrate a legacy node.
|
|
tags:
|
|
- Nodes
|
|
/api/v1/pending_hosts:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.PendingHost'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List pending hosts in a network
|
|
tags:
|
|
- Hosts
|
|
/api/v1/pending_hosts/approve/{id}:
|
|
post:
|
|
parameters:
|
|
- description: Pending Host ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Approve pending host in a network
|
|
tags:
|
|
- Hosts
|
|
/api/v1/pending_hosts/reject/{id}:
|
|
post:
|
|
parameters:
|
|
- description: Pending Host ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.PendingHost'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Reject pending host in a network
|
|
tags:
|
|
- Hosts
|
|
/api/v1/posture_check:
|
|
delete:
|
|
parameters:
|
|
- description: Posture Check ID
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.PostureCheck'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete Posture Check
|
|
tags:
|
|
- Posture Check
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: Posture Check ID to fetch a specific check
|
|
in: query
|
|
name: id
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.PostureCheck'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Posture Checks
|
|
tags:
|
|
- Posture Check
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Posture Check payload
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.PostureCheck'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.PostureCheck'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create Posture Check
|
|
tags:
|
|
- Posture Check
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Posture Check payload
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.PostureCheck'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.PostureCheck'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update Posture Check
|
|
tags:
|
|
- Posture Check
|
|
/api/v1/posture_check/attrs:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Posture Checks Available Attributes
|
|
tags:
|
|
- Posture Check
|
|
/api/v1/posture_check/violations:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
- description: If 'true', list violated users instead of nodes
|
|
in: query
|
|
name: users
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ApiNode'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Posture Check violated Nodes
|
|
tags:
|
|
- Posture Check
|
|
/api/v1/tags:
|
|
delete:
|
|
parameters:
|
|
- description: Tag ID to delete
|
|
in: query
|
|
name: tag_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete Tag
|
|
tags:
|
|
- TAG
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.TagListRespNodes'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List Tags in a network
|
|
tags:
|
|
- TAG
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Tag creation request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.CreateTagReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.TagListRespNodes'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create Tag
|
|
tags:
|
|
- TAG
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Tag update request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UpdateTagReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.TagListRespNodes'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update Tag
|
|
tags:
|
|
- TAG
|
|
/api/v1/user/activity:
|
|
get:
|
|
parameters:
|
|
- description: Username required to get the user events
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Start date in RFC3339 format
|
|
in: query
|
|
name: from_date
|
|
type: string
|
|
- description: End date in RFC3339 format
|
|
in: query
|
|
name: to_date
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.Event'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List user activity
|
|
tags:
|
|
- Activity
|
|
/api/v1/users:
|
|
get:
|
|
parameters:
|
|
- description: Username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get an individual user with role info
|
|
tags:
|
|
- Users
|
|
/api/v1/users/access_token:
|
|
delete:
|
|
parameters:
|
|
- description: Token ID
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete user access tokens
|
|
tags:
|
|
- Users
|
|
get:
|
|
parameters:
|
|
- description: Username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.UserAccessToken'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get user access tokens
|
|
tags:
|
|
- Users
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Access token request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserAccessToken'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessfulUserLoginResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create a user API access token
|
|
tags:
|
|
- Users
|
|
/api/v1/users/add_network_user:
|
|
put:
|
|
parameters:
|
|
- description: Username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Network ID
|
|
in: query
|
|
name: network_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Add user to network
|
|
tags:
|
|
- Users
|
|
/api/v1/users/bulk:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: List of usernames to delete
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkDeleteRequest'
|
|
- description: Force delete associated ext-client configs
|
|
in: query
|
|
name: force_delete_configs
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Bulk delete users
|
|
tags:
|
|
- Users
|
|
/api/v1/users/bulk/status:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: List of usernames and desired status
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkUserStatusUpdate'
|
|
- description: Also toggle associated ext-client connectivity
|
|
in: query
|
|
name: force_toggle_configs
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Bulk disable/enable user accounts
|
|
tags:
|
|
- Users
|
|
/api/v1/users/group:
|
|
delete:
|
|
parameters:
|
|
- description: Group ID required to delete the group
|
|
in: query
|
|
name: group_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete user group
|
|
tags:
|
|
- Users
|
|
get:
|
|
parameters:
|
|
- description: Group ID
|
|
in: query
|
|
name: group_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.UserGroup'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get a user group
|
|
tags:
|
|
- Users
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Create group request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserGroup'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.UserGroup'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create a user group
|
|
tags:
|
|
- Users
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: User group update data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserGroup'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.UserGroup'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update a user group
|
|
tags:
|
|
- Users
|
|
/api/v1/users/groups:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.UserGroup'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List all user groups
|
|
tags:
|
|
- Users
|
|
/api/v1/users/groups/network:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.UserGroup'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List user groups with access to a network
|
|
tags:
|
|
- Users
|
|
/api/v1/users/invite:
|
|
delete:
|
|
parameters:
|
|
- description: Invitee email to delete
|
|
in: query
|
|
name: invitee_email
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete a pending user invite
|
|
tags:
|
|
- Users
|
|
get:
|
|
parameters:
|
|
- description: Invitee email
|
|
in: query
|
|
name: email
|
|
required: true
|
|
type: string
|
|
- description: Invite code
|
|
in: query
|
|
name: invite_code
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Verify user invite
|
|
tags:
|
|
- Users
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Invite users request
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.InviteUsersReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Invite users
|
|
tags:
|
|
- Users
|
|
/api/v1/users/invite-signup:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Invitee email
|
|
in: query
|
|
name: email
|
|
required: true
|
|
type: string
|
|
- description: Invite code
|
|
in: query
|
|
name: invite_code
|
|
required: true
|
|
type: string
|
|
- description: User signup data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: User signup via invite
|
|
tags:
|
|
- Users
|
|
/api/v1/users/invites:
|
|
delete:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete all pending user invites
|
|
tags:
|
|
- Users
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.UserInvite'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List all pending user invites
|
|
tags:
|
|
- Users
|
|
/api/v1/users/logout:
|
|
post:
|
|
parameters:
|
|
- description: Username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Log out a user
|
|
tags:
|
|
- Users
|
|
/api/v1/users/network:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List users with access to a network
|
|
tags:
|
|
- Users
|
|
/api/v1/users/network_ip:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.UserIPMap'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List users network IP mappings
|
|
tags:
|
|
- Users
|
|
/api/v1/users/remove_network_user:
|
|
put:
|
|
parameters:
|
|
- description: Username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: Network ID
|
|
in: query
|
|
name: network_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Remove user from network
|
|
tags:
|
|
- Users
|
|
/api/v1/users/role:
|
|
delete:
|
|
parameters:
|
|
- description: Role ID required to delete the role
|
|
in: query
|
|
name: role_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.SuccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Delete user role permission template
|
|
tags:
|
|
- Users
|
|
get:
|
|
parameters:
|
|
- description: Role ID required to get the role details
|
|
in: query
|
|
name: role_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.UserRole'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Get user role permission template
|
|
tags:
|
|
- Users
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: User role template
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserRole'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.UserRole'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Create user role permission template
|
|
tags:
|
|
- Users
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: User role template
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserRole'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schema.UserRole'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: Update user role permission template
|
|
tags:
|
|
- Users
|
|
/api/v1/users/roles:
|
|
get:
|
|
parameters:
|
|
- description: If true, lists platform roles. Otherwise, lists network roles.
|
|
in: query
|
|
name: platform
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.UserRole'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List all user roles
|
|
tags:
|
|
- Users
|
|
/api/v1/users/unassigned_network_users:
|
|
get:
|
|
parameters:
|
|
- description: Network ID
|
|
in: query
|
|
name: network_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List unassigned network users
|
|
tags:
|
|
- Users
|
|
/api/v2/users:
|
|
get:
|
|
parameters:
|
|
- description: Filter by Account Status
|
|
enum:
|
|
- enabled
|
|
- disabled
|
|
in: query
|
|
name: account_status
|
|
type: string
|
|
- description: Filter by MFA Status
|
|
enum:
|
|
- enabled
|
|
- disabled
|
|
in: query
|
|
name: mfa_status
|
|
type: string
|
|
- collectionFormat: csv
|
|
description: Filter by Role
|
|
in: query
|
|
items:
|
|
enum:
|
|
- super-admin
|
|
- admin
|
|
- platform-user
|
|
- service-user
|
|
- auditor
|
|
type: string
|
|
name: role
|
|
type: array
|
|
- description: Filter by Auth Type
|
|
enum:
|
|
- basic
|
|
- oauth
|
|
in: query
|
|
name: auth_type
|
|
type: string
|
|
- description: Search across fields
|
|
in: query
|
|
name: q
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ReturnUser'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List all users
|
|
tags:
|
|
- Users
|
|
/api/v2/users/groups:
|
|
get:
|
|
parameters:
|
|
- description: Filter Default / Custom Groups
|
|
enum:
|
|
- "true"
|
|
- "false"
|
|
in: query
|
|
name: default
|
|
type: string
|
|
- description: Search across fields
|
|
in: query
|
|
name: q
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Items per page
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/schema.UserGroup'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
security:
|
|
- oauth: []
|
|
summary: List all user groups
|
|
tags:
|
|
- Users
|
|
swagger: "2.0"
|
|
tags:
|
|
- description: |
|
|
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.
|
|
name: APIUsage
|
|
- description: |
|
|
API calls are primarily authenticated using a user authentication token. This token should be included in the header as follows:
|
|
|
|
-H "Authorization: Bearer <YOUR_AUTH_TOKEN>"
|
|
|
|
To obtain YOUR_AUTH_TOKEN:
|
|
Call the api/users/adm/authenticate endpoint (see documentation below for details).
|
|
|
|
Note: While a MasterKey exists (configurable via env var or config file), it should be considered a backup option, used only when server access is lost. By default, this key is "secret key," but it's crucial to change this and keep it secure in your instance.
|
|
|
|
For more information on configuration and security best practices, refer to the [Netmaker documentation](https://docs.netmaker.io/).
|
|
name: Authentication
|
|
- description: |
|
|
Check out our [Pricing](https://www.netmaker.io/pricing). And Feel Free to [Contact Us](https://www.netmaker.io/contact) if you have any questions or need some clarifications.
|
|
name: Pricing
|