add format int64 for swagger doc (#3247)

* add format int64 for swagger doc

* add format int64 for swagger doc

* add global override

* swagger doc update

* add new line for .swaggo file
This commit is contained in:
Yabin Ma 2024-12-12 06:52:52 +01:00 committed by GitHub
parent 94cc85377f
commit 1d9e0f71df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 138 additions and 67 deletions

2
.swaggo Normal file
View file

@ -0,0 +1,2 @@
// Replace all time.Duration with int64
replace time.Duration int64

View file

@ -89,7 +89,7 @@ type ServerConfig struct {
EgressesLimit int `yaml:"egresses_limit"`
DeployedByOperator bool `yaml:"deployed_by_operator"`
Environment string `yaml:"environment"`
JwtValidityDuration time.Duration `yaml:"jwt_validity_duration"`
JwtValidityDuration time.Duration `yaml:"jwt_validity_duration" swaggertype:"primitive,integer" format:"int64"`
RacAutoDisable bool `yaml:"rac_auto_disable"`
CacheEnabled string `yaml:"caching_enabled"`
EndpointDetection bool `json:"endpoint_detection"`

View file

@ -16,10 +16,10 @@ type ApiNode struct {
Address6 string `json:"address6" validate:"omitempty,cidrv6"`
LocalAddress string `json:"localaddress" validate:"omitempty,cidr"`
AllowedIPs []string `json:"allowedips"`
LastModified int64 `json:"lastmodified"`
ExpirationDateTime int64 `json:"expdatetime"`
LastCheckIn int64 `json:"lastcheckin"`
LastPeerUpdate int64 `json:"lastpeerupdate"`
LastModified int64 `json:"lastmodified" swaggertype:"primitive,integer" format:"int64"`
ExpirationDateTime int64 `json:"expdatetime" swaggertype:"primitive,integer" format:"int64"`
LastCheckIn int64 `json:"lastcheckin" swaggertype:"primitive,integer" format:"int64"`
LastPeerUpdate int64 `json:"lastpeerupdate" swaggertype:"primitive,integer" format:"int64"`
Network string `json:"network"`
NetworkRange string `json:"networkrange"`
NetworkRange6 string `json:"networkrange6"`

View file

@ -58,7 +58,7 @@ type EnrollmentKey struct {
// APIEnrollmentKey - used to create enrollment keys via API
type APIEnrollmentKey struct {
Expiration int64 `json:"expiration"`
Expiration int64 `json:"expiration" swaggertype:"primitive,integer" format:"int64"`
UsesRemaining int `json:"uses_remaining"`
Networks []string `json:"networks"`
Unlimited bool `json:"unlimited"`

View file

@ -13,7 +13,7 @@ type ExtClient struct {
AllowedIPs []string `json:"allowed_ips"`
IngressGatewayID string `json:"ingressgatewayid" bson:"ingressgatewayid"`
IngressGatewayEndpoint string `json:"ingressgatewayendpoint" bson:"ingressgatewayendpoint"`
LastModified int64 `json:"lastmodified" bson:"lastmodified"`
LastModified int64 `json:"lastmodified" bson:"lastmodified" swaggertype:"primitive,integer" format:"int64"`
Enabled bool `json:"enabled" bson:"enabled"`
OwnerID string `json:"ownerid" bson:"ownerid"`
DeniedACLs map[string]struct{} `json:"deniednodeacls" bson:"acls,omitempty"`

View file

@ -71,7 +71,7 @@ type Host struct {
IsDefault bool `json:"isdefault" yaml:"isdefault"`
NatType string `json:"nat_type,omitempty" yaml:"nat_type,omitempty"`
TurnEndpoint *netip.AddrPort `json:"turn_endpoint,omitempty" yaml:"turn_endpoint,omitempty"`
PersistentKeepalive time.Duration `json:"persistentkeepalive" yaml:"persistentkeepalive"`
PersistentKeepalive time.Duration `json:"persistentkeepalive" swaggertype:"primitive,integer" format:"int64" yaml:"persistentkeepalive"`
}
// FormatBool converts a boolean to a [yes|no] string

View file

@ -15,14 +15,14 @@ type Metrics struct {
// Metric - holds a metric for data between nodes
type Metric struct {
NodeName string `json:"node_name" bson:"node_name" yaml:"node_name"`
Uptime int64 `json:"uptime" bson:"uptime" yaml:"uptime"`
TotalTime int64 `json:"totaltime" bson:"totaltime" yaml:"totaltime"`
Latency int64 `json:"latency" bson:"latency" yaml:"latency"`
TotalReceived int64 `json:"totalreceived" bson:"totalreceived" yaml:"totalreceived"`
LastTotalReceived int64 `json:"lasttotalreceived" bson:"lasttotalreceived" yaml:"lasttotalreceived"`
TotalSent int64 `json:"totalsent" bson:"totalsent" yaml:"totalsent"`
LastTotalSent int64 `json:"lasttotalsent" bson:"lasttotalsent" yaml:"lasttotalsent"`
ActualUptime time.Duration `json:"actualuptime" bson:"actualuptime" yaml:"actualuptime"`
Uptime int64 `json:"uptime" bson:"uptime" yaml:"uptime" swaggertype:"primitive,integer" format:"int64"`
TotalTime int64 `json:"totaltime" bson:"totaltime" yaml:"totaltime" swaggertype:"primitive,integer" format:"int64"`
Latency int64 `json:"latency" bson:"latency" yaml:"latency" swaggertype:"primitive,integer" format:"int64"`
TotalReceived int64 `json:"totalreceived" bson:"totalreceived" yaml:"totalreceived" swaggertype:"primitive,integer" format:"int64"`
LastTotalReceived int64 `json:"lasttotalreceived" bson:"lasttotalreceived" yaml:"lasttotalreceived" swaggertype:"primitive,integer" format:"int64"`
TotalSent int64 `json:"totalsent" bson:"totalsent" yaml:"totalsent" swaggertype:"primitive,integer" format:"int64"`
LastTotalSent int64 `json:"lasttotalsent" bson:"lasttotalsent" yaml:"lasttotalsent" swaggertype:"primitive,integer" format:"int64"`
ActualUptime time.Duration `json:"actualuptime" swaggertype:"primitive,integer" format:"int64" bson:"actualuptime" yaml:"actualuptime"`
PercentUp float64 `json:"percentup" bson:"percentup" yaml:"percentup"`
Connected bool `json:"connected" bson:"connected" yaml:"connected"`
}

View file

@ -11,8 +11,8 @@ type Network struct {
AddressRange string `json:"addressrange" bson:"addressrange" validate:"omitempty,cidrv4"`
AddressRange6 string `json:"addressrange6" bson:"addressrange6" validate:"omitempty,cidrv6"`
NetID string `json:"netid" bson:"netid" validate:"required,min=1,max=32,netid_valid"`
NodesLastModified int64 `json:"nodeslastmodified" bson:"nodeslastmodified"`
NetworkLastModified int64 `json:"networklastmodified" bson:"networklastmodified"`
NodesLastModified int64 `json:"nodeslastmodified" bson:"nodeslastmodified" swaggertype:"primitive,integer" format:"int64"`
NetworkLastModified int64 `json:"networklastmodified" bson:"networklastmodified" swaggertype:"primitive,integer" format:"int64"`
DefaultInterface string `json:"defaultinterface" bson:"defaultinterface" validate:"min=1,max=35"`
DefaultListenPort int32 `json:"defaultlistenport,omitempty" bson:"defaultlistenport,omitempty" validate:"omitempty,min=1024,max=65535"`
NodeLimit int32 `json:"nodelimit" bson:"nodelimit"`

View file

@ -137,10 +137,10 @@ type LegacyNode struct {
IsHub string `json:"ishub" bson:"ishub" yaml:"ishub" validate:"checkyesorno"`
AccessKey string `json:"accesskey" bson:"accesskey" yaml:"accesskey"`
Interface string `json:"interface" bson:"interface" yaml:"interface"`
LastModified int64 `json:"lastmodified" bson:"lastmodified" yaml:"lastmodified"`
ExpirationDateTime int64 `json:"expdatetime" bson:"expdatetime" yaml:"expdatetime"`
LastPeerUpdate int64 `json:"lastpeerupdate" bson:"lastpeerupdate" yaml:"lastpeerupdate"`
LastCheckIn int64 `json:"lastcheckin" bson:"lastcheckin" yaml:"lastcheckin"`
LastModified int64 `json:"lastmodified" bson:"lastmodified" yaml:"lastmodified" swaggertype:"primitive,integer" format:"int64"`
ExpirationDateTime int64 `json:"expdatetime" bson:"expdatetime" yaml:"expdatetime" swaggertype:"primitive,integer" format:"int64"`
LastPeerUpdate int64 `json:"lastpeerupdate" bson:"lastpeerupdate" yaml:"lastpeerupdate" swaggertype:"primitive,integer" format:"int64"`
LastCheckIn int64 `json:"lastcheckin" bson:"lastcheckin" yaml:"lastcheckin" swaggertype:"primitive,integer" format:"int64"`
MacAddress string `json:"macaddress" bson:"macaddress" yaml:"macaddress"`
Password string `json:"password" bson:"password" yaml:"password" validate:"required,min=6"`
Network string `json:"network" bson:"network" yaml:"network" validate:"network_exists"`

View file

@ -196,7 +196,7 @@ type ServerUpdateData struct {
// also contains assymetrical encryption pub/priv keys for any server traffic
type Telemetry struct {
UUID string `json:"uuid" bson:"uuid"`
LastSend int64 `json:"lastsend" bson:"lastsend"`
LastSend int64 `json:"lastsend" bson:"lastsend" swaggertype:"primitive,integer" format:"int64"`
TrafficKeyPriv []byte `json:"traffickeypriv" bson:"traffickeypriv"`
TrafficKeyPub []byte `json:"traffickeypub" bson:"traffickeypub"`
}

View file

@ -18,7 +18,7 @@ var errValidation = errors.New(license_validation_err_msg)
// LicenseKey - the license key struct representation with associated data
type LicenseKey struct {
LicenseValue string `json:"license_value"` // actual (public) key and the unique value for the key
Expiration int64 `json:"expiration"`
Expiration int64 `json:"expiration" swaggertype:"primitive,integer" format:"int64"`
UsageServers int `json:"limit_servers"`
UsageUsers int `json:"limit_users"`
UsageClients int `json:"limit_clients"`

View file

@ -1,6 +1,7 @@
definitions:
acls.ACL:
additionalProperties:
format: int32
type: integer
type: object
acls.ACLContainer:
@ -74,7 +75,8 @@ definitions:
ingressesLimit:
type: integer
jwtValidityDuration:
$ref: '#/definitions/time.Duration'
format: int64
type: integer
licenseValue:
type: string
machinesLimit:
@ -109,6 +111,8 @@ definitions:
type: string
publicIPService:
type: string
publicIp:
type: string
racAutoDisable:
type: boolean
restBackend:
@ -155,6 +159,7 @@ definitions:
models.APIEnrollmentKey:
properties:
expiration:
format: int64
type: integer
groups:
items:
@ -179,6 +184,41 @@ definitions:
required:
- tags
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
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:
@ -267,6 +307,7 @@ definitions:
type: string
type: array
expdatetime:
format: int64
type: integer
fail_over_peers:
additionalProperties:
@ -307,10 +348,13 @@ definitions:
isrelayed:
type: boolean
lastcheckin:
format: int64
type: integer
lastmodified:
format: int64
type: integer
lastpeerupdate:
format: int64
type: integer
localaddress:
type: string
@ -334,6 +378,8 @@ definitions:
type: string
static_node:
$ref: '#/definitions/models.ExtClient'
status:
$ref: '#/definitions/models.NodeStatus'
tags:
additionalProperties:
type: object
@ -481,6 +527,7 @@ definitions:
ingressgatewayid:
type: string
lastmodified:
format: int64
type: integer
network:
type: string
@ -515,13 +562,27 @@ definitions:
properties:
allow:
type: boolean
dstIP:
allowed_ports:
items:
type: string
type: array
allowed_protocols:
allOf:
- $ref: '#/definitions/models.Protocol'
description: tcp, udp, etc.
dst_ip:
$ref: '#/definitions/net.IPNet'
srcIP:
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'
@ -534,6 +595,10 @@ definitions:
type: boolean
is_ingress_gw:
type: boolean
networks:
items:
$ref: '#/definitions/net.IPNet'
type: array
type: object
models.Host:
properties:
@ -596,7 +661,8 @@ definitions:
os:
type: string
persistentkeepalive:
$ref: '#/definitions/time.Duration'
format: int64
type: integer
publickey:
items:
type: integer
@ -797,26 +863,34 @@ definitions:
models.Metric:
properties:
actualuptime:
$ref: '#/definitions/time.Duration'
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:
@ -868,10 +942,12 @@ definitions:
minLength: 1
type: string
networklastmodified:
format: int64
type: integer
nodelimit:
type: integer
nodeslastmodified:
format: int64
type: integer
required:
- netid
@ -967,6 +1043,8 @@ definitions:
type: integer
networkrange6:
type: number
node_status:
$ref: '#/definitions/models.NodeStatus'
ownerid:
type: string
pendingdelete:
@ -1005,10 +1083,36 @@ definitions:
serverconfig:
$ref: '#/definitions/models.ServerConfig'
type: object
models.NodeStatus:
enum:
- online
- offline
- warning
- error
- unknown
type: string
x-enum-varnames:
- OnlineSt
- OfflineSt
- WarningSt
- ErrorSt
- UnKnown
models.PeerMap:
additionalProperties:
$ref: '#/definitions/models.IDandAddr'
type: object
models.Protocol:
enum:
- all
- udp
- tcp
- icmp
type: string
x-enum-varnames:
- ALL
- UDP
- TCP
- ICMP
models.RegisterResponse:
properties:
requested_host:
@ -1286,6 +1390,7 @@ definitions:
mask:
description: network mask
items:
format: int32
type: integer
type: array
type: object
@ -1303,42 +1408,6 @@ definitions:
type: object
netip.AddrPort:
type: object
time.Duration:
enum:
- -9223372036854775808
- 9223372036854775807
- 1
- 1000
- 1000000
- 1000000000
- 60000000000
- 3600000000000
- -9223372036854775808
- 9223372036854775807
- 1
- 1000
- 1000000
- 1000000000
- 60000000000
- 3600000000000
type: integer
x-enum-varnames:
- minDuration
- maxDuration
- Nanosecond
- Microsecond
- Millisecond
- Second
- Minute
- Hour
- minDuration
- maxDuration
- Nanosecond
- Microsecond
- Millisecond
- Second
- Minute
- Hour
wgtypes.PeerConfig:
properties:
allowedIPs:
@ -1353,13 +1422,13 @@ definitions:
- $ref: '#/definitions/net.UDPAddr'
description: Endpoint specifies the endpoint of this peer entry, if not nil.
persistentKeepaliveInterval:
allOf:
- $ref: '#/definitions/time.Duration'
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.