From ea79b8723623f0f4be476ae8a596db9095b6f829 Mon Sep 17 00:00:00 2001 From: Ingo Oppermann Date: Wed, 11 Jan 2023 21:05:40 +0100 Subject: [PATCH] Add format annotation for integer types for swagger documentation --- config/data.go | 40 ++-- config/v1/data.go | 38 ++-- config/v2/data.go | 38 ++-- docs/docs.go | 462 ++++++++++++++++++++++++++++--------------- docs/swagger.json | 462 ++++++++++++++++++++++++++++--------------- docs/swagger.yaml | 154 +++++++++++++++ http/api/avstream.go | 12 +- http/api/error.go | 2 +- http/api/fs.go | 4 +- http/api/metrics.go | 8 +- http/api/playout.go | 18 +- http/api/probe.go | 12 +- http/api/process.go | 22 +-- http/api/progress.go | 28 +-- http/api/session.go | 16 +- http/api/srt.go | 96 ++++----- http/api/widget.go | 4 +- 17 files changed, 939 insertions(+), 477 deletions(-) diff --git a/config/data.go b/config/data.go index bb836b3f..a44cb0b2 100644 --- a/config/data.go +++ b/config/data.go @@ -13,7 +13,7 @@ type Data struct { CreatedAt time.Time `json:"created_at"` LoadedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` - Version int64 `json:"version" jsonschema:"minimum=3,maximum=3"` + Version int64 `json:"version" jsonschema:"minimum=3,maximum=3" format:"int64"` ID string `json:"id"` Name string `json:"name"` Address string `json:"address"` @@ -21,7 +21,7 @@ type Data struct { Log struct { Level string `json:"level" enums:"debug,info,warn,error,silent" jsonschema:"enum=debug,enum=info,enum=warn,enum=error,enum=silent"` Topics []string `json:"topics"` - MaxLines int `json:"max_lines"` + MaxLines int `json:"max_lines" format:"int"` } `json:"log"` DB struct { Dir string `json:"dir"` @@ -67,12 +67,12 @@ type Data struct { Storage struct { Disk struct { Dir string `json:"dir"` - Size int64 `json:"max_size_mbytes"` + Size int64 `json:"max_size_mbytes" format:"int64"` Cache struct { Enable bool `json:"enable"` - Size uint64 `json:"max_size_mbytes"` - TTL int64 `json:"ttl_seconds"` - FileSize uint64 `json:"max_file_size_mbytes"` + Size uint64 `json:"max_size_mbytes" format:"uint64"` + TTL int64 `json:"ttl_seconds" format:"int64"` + FileSize uint64 `json:"max_file_size_mbytes" format:"uint64"` Types struct { Allow []string `json:"allow"` Block []string `json:"block"` @@ -85,7 +85,7 @@ type Data struct { Username string `json:"username"` Password string `json:"password"` } `json:"auth"` - Size int64 `json:"max_size_mbytes"` + Size int64 `json:"max_size_mbytes" format:"int64"` Purge bool `json:"purge"` } `json:"memory"` CORS struct { @@ -113,7 +113,7 @@ type Data struct { } `json:"srt"` FFmpeg struct { Binary string `json:"binary"` - MaxProcesses int64 `json:"max_processes"` + MaxProcesses int64 `json:"max_processes" format:"int64"` Access struct { Input struct { Allow []string `json:"allow"` @@ -125,34 +125,34 @@ type Data struct { } `json:"output"` } `json:"access"` Log struct { - MaxLines int `json:"max_lines"` - MaxHistory int `json:"max_history"` + MaxLines int `json:"max_lines" format:"int"` + MaxHistory int `json:"max_history" format:"int"` } `json:"log"` } `json:"ffmpeg"` Playout struct { Enable bool `json:"enable"` - MinPort int `json:"min_port"` - MaxPort int `json:"max_port"` + MinPort int `json:"min_port" format:"int"` + MaxPort int `json:"max_port" format:"int"` } `json:"playout"` Debug struct { Profiling bool `json:"profiling"` - ForceGC int `json:"force_gc"` - MemoryLimit int64 `json:"memory_limit_mbytes"` + ForceGC int `json:"force_gc" format:"int"` + MemoryLimit int64 `json:"memory_limit_mbytes" format:"int64"` } `json:"debug"` Metrics struct { Enable bool `json:"enable"` EnablePrometheus bool `json:"enable_prometheus"` - Range int64 `json:"range_sec"` // seconds - Interval int64 `json:"interval_sec"` // seconds + Range int64 `json:"range_sec" format:"int64"` // seconds + Interval int64 `json:"interval_sec" format:"int64"` // seconds } `json:"metrics"` Sessions struct { Enable bool `json:"enable"` IPIgnoreList []string `json:"ip_ignorelist"` - SessionTimeout int `json:"session_timeout_sec"` + SessionTimeout int `json:"session_timeout_sec" format:"int"` Persist bool `json:"persist"` - PersistInterval int `json:"persist_interval_sec"` - MaxBitrate uint64 `json:"max_bitrate_mbit"` - MaxSessions uint64 `json:"max_sessions"` + PersistInterval int `json:"persist_interval_sec" format:"int"` + MaxBitrate uint64 `json:"max_bitrate_mbit" format:"uint64"` + MaxSessions uint64 `json:"max_sessions" format:"uint64"` } `json:"sessions"` Service struct { Enable bool `json:"enable"` diff --git a/config/v1/data.go b/config/v1/data.go index e398adbb..2826f02d 100644 --- a/config/v1/data.go +++ b/config/v1/data.go @@ -10,7 +10,7 @@ type Data struct { CreatedAt time.Time `json:"created_at"` LoadedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` - Version int64 `json:"version" jsonschema:"minimum=1,maximum=1"` + Version int64 `json:"version" jsonschema:"minimum=1,maximum=1" format:"int64"` ID string `json:"id"` Name string `json:"name"` Address string `json:"address"` @@ -18,7 +18,7 @@ type Data struct { Log struct { Level string `json:"level" enums:"debug,info,warn,error,silent" jsonschema:"enum=debug,enum=info,enum=warn,enum=error,enum=silent"` Topics []string `json:"topics"` - MaxLines int `json:"max_lines"` + MaxLines int `json:"max_lines" format:"int"` } `json:"log"` DB struct { Dir string `json:"dir"` @@ -63,12 +63,12 @@ type Data struct { Storage struct { Disk struct { Dir string `json:"dir"` - Size int64 `json:"max_size_mbytes"` + Size int64 `json:"max_size_mbytes" format:"int64"` Cache struct { Enable bool `json:"enable"` - Size uint64 `json:"max_size_mbytes"` - TTL int64 `json:"ttl_seconds"` - FileSize uint64 `json:"max_file_size_mbytes"` + Size uint64 `json:"max_size_mbytes" format:"uint64"` + TTL int64 `json:"ttl_seconds" format:"int64"` + FileSize uint64 `json:"max_file_size_mbytes" format:"uint64"` Types []string `json:"types"` } `json:"cache"` } `json:"disk"` @@ -78,7 +78,7 @@ type Data struct { Username string `json:"username"` Password string `json:"password"` } `json:"auth"` - Size int64 `json:"max_size_mbytes"` + Size int64 `json:"max_size_mbytes" format:"int64"` Purge bool `json:"purge"` } `json:"memory"` CORS struct { @@ -105,7 +105,7 @@ type Data struct { } `json:"srt"` FFmpeg struct { Binary string `json:"binary"` - MaxProcesses int64 `json:"max_processes"` + MaxProcesses int64 `json:"max_processes" format:"int64"` Access struct { Input struct { Allow []string `json:"allow"` @@ -117,33 +117,33 @@ type Data struct { } `json:"output"` } `json:"access"` Log struct { - MaxLines int `json:"max_lines"` - MaxHistory int `json:"max_history"` + MaxLines int `json:"max_lines" format:"int"` + MaxHistory int `json:"max_history" format:"int"` } `json:"log"` } `json:"ffmpeg"` Playout struct { Enable bool `json:"enable"` - MinPort int `json:"min_port"` - MaxPort int `json:"max_port"` + MinPort int `json:"min_port" format:"int"` + MaxPort int `json:"max_port" format:"int"` } `json:"playout"` Debug struct { Profiling bool `json:"profiling"` - ForceGC int `json:"force_gc"` + ForceGC int `json:"force_gc" format:"int"` } `json:"debug"` Metrics struct { Enable bool `json:"enable"` EnablePrometheus bool `json:"enable_prometheus"` - Range int64 `json:"range_sec"` // seconds - Interval int64 `json:"interval_sec"` // seconds + Range int64 `json:"range_sec" format:"int64"` // seconds + Interval int64 `json:"interval_sec" format:"int64"` // seconds } `json:"metrics"` Sessions struct { Enable bool `json:"enable"` IPIgnoreList []string `json:"ip_ignorelist"` - SessionTimeout int `json:"session_timeout_sec"` + SessionTimeout int `json:"session_timeout_sec" format:"int"` Persist bool `json:"persist"` - PersistInterval int `json:"persist_interval_sec"` - MaxBitrate uint64 `json:"max_bitrate_mbit"` - MaxSessions uint64 `json:"max_sessions"` + PersistInterval int `json:"persist_interval_sec" format:"int"` + MaxBitrate uint64 `json:"max_bitrate_mbit" format:"uint64"` + MaxSessions uint64 `json:"max_sessions" format:"uint64"` } `json:"sessions"` Service struct { Enable bool `json:"enable"` diff --git a/config/v2/data.go b/config/v2/data.go index 1a549497..10476c7f 100644 --- a/config/v2/data.go +++ b/config/v2/data.go @@ -16,7 +16,7 @@ type Data struct { CreatedAt time.Time `json:"created_at"` LoadedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` - Version int64 `json:"version" jsonschema:"minimum=2,maximum=2"` + Version int64 `json:"version" jsonschema:"minimum=2,maximum=2" format:"int64"` ID string `json:"id"` Name string `json:"name"` Address string `json:"address"` @@ -24,7 +24,7 @@ type Data struct { Log struct { Level string `json:"level" enums:"debug,info,warn,error,silent" jsonschema:"enum=debug,enum=info,enum=warn,enum=error,enum=silent"` Topics []string `json:"topics"` - MaxLines int `json:"max_lines"` + MaxLines int `json:"max_lines" format:"int"` } `json:"log"` DB struct { Dir string `json:"dir"` @@ -69,12 +69,12 @@ type Data struct { Storage struct { Disk struct { Dir string `json:"dir"` - Size int64 `json:"max_size_mbytes"` + Size int64 `json:"max_size_mbytes" format:"int64"` Cache struct { Enable bool `json:"enable"` - Size uint64 `json:"max_size_mbytes"` - TTL int64 `json:"ttl_seconds"` - FileSize uint64 `json:"max_file_size_mbytes"` + Size uint64 `json:"max_size_mbytes" format:"uint64"` + TTL int64 `json:"ttl_seconds" format:"int64"` + FileSize uint64 `json:"max_file_size_mbytes" format:"uint64"` Types []string `json:"types"` } `json:"cache"` } `json:"disk"` @@ -84,7 +84,7 @@ type Data struct { Username string `json:"username"` Password string `json:"password"` } `json:"auth"` - Size int64 `json:"max_size_mbytes"` + Size int64 `json:"max_size_mbytes" format:"int64"` Purge bool `json:"purge"` } `json:"memory"` CORS struct { @@ -112,7 +112,7 @@ type Data struct { } `json:"srt"` FFmpeg struct { Binary string `json:"binary"` - MaxProcesses int64 `json:"max_processes"` + MaxProcesses int64 `json:"max_processes" format:"int64"` Access struct { Input struct { Allow []string `json:"allow"` @@ -124,33 +124,33 @@ type Data struct { } `json:"output"` } `json:"access"` Log struct { - MaxLines int `json:"max_lines"` - MaxHistory int `json:"max_history"` + MaxLines int `json:"max_lines" format:"int"` + MaxHistory int `json:"max_history" format:"int"` } `json:"log"` } `json:"ffmpeg"` Playout struct { Enable bool `json:"enable"` - MinPort int `json:"min_port"` - MaxPort int `json:"max_port"` + MinPort int `json:"min_port" format:"int"` + MaxPort int `json:"max_port" format:"int"` } `json:"playout"` Debug struct { Profiling bool `json:"profiling"` - ForceGC int `json:"force_gc"` + ForceGC int `json:"force_gc" format:"int"` } `json:"debug"` Metrics struct { Enable bool `json:"enable"` EnablePrometheus bool `json:"enable_prometheus"` - Range int64 `json:"range_sec"` // seconds - Interval int64 `json:"interval_sec"` // seconds + Range int64 `json:"range_sec" format:"int64"` // seconds + Interval int64 `json:"interval_sec" format:"int64"` // seconds } `json:"metrics"` Sessions struct { Enable bool `json:"enable"` IPIgnoreList []string `json:"ip_ignorelist"` - SessionTimeout int `json:"session_timeout_sec"` + SessionTimeout int `json:"session_timeout_sec" format:"int"` Persist bool `json:"persist"` - PersistInterval int `json:"persist_interval_sec"` - MaxBitrate uint64 `json:"max_bitrate_mbit"` - MaxSessions uint64 `json:"max_sessions"` + PersistInterval int `json:"persist_interval_sec" format:"int"` + MaxBitrate uint64 `json:"max_bitrate_mbit" format:"uint64"` + MaxSessions uint64 `json:"max_sessions" format:"uint64"` } `json:"sessions"` Service struct { Enable bool `json:"enable"` diff --git a/docs/docs.go b/docs/docs.go index cee532d5..c44762d7 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -2372,19 +2372,23 @@ const docTemplate = `{ "type": "object", "properties": { "aqueue": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "drop": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "dup": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "duplicating": { "type": "boolean" }, "enc": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "gop": { "type": "string" @@ -2399,7 +2403,8 @@ const docTemplate = `{ "$ref": "#/definitions/api.AVstreamIO" }, "queue": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -2407,7 +2412,8 @@ const docTemplate = `{ "type": "object", "properties": { "packet": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "size_kb": { "type": "integer" @@ -2577,10 +2583,12 @@ const docTemplate = `{ "type": "object", "properties": { "force_gc": { - "type": "integer" + "type": "integer", + "format": "int" }, "memory_limit_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" }, "profiling": { "type": "boolean" @@ -2636,15 +2644,18 @@ const docTemplate = `{ "type": "object", "properties": { "max_history": { - "type": "integer" + "type": "integer", + "format": "int" }, "max_lines": { - "type": "integer" + "type": "integer", + "format": "int" } } }, "max_processes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -2679,7 +2690,8 @@ const docTemplate = `{ ] }, "max_lines": { - "type": "integer" + "type": "integer", + "format": "int" }, "topics": { "type": "array", @@ -2700,11 +2712,13 @@ const docTemplate = `{ }, "interval_sec": { "description": "seconds", - "type": "integer" + "type": "integer", + "format": "int64" }, "range_sec": { "description": "seconds", - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -2718,10 +2732,12 @@ const docTemplate = `{ "type": "boolean" }, "max_port": { - "type": "integer" + "type": "integer", + "format": "int" }, "min_port": { - "type": "integer" + "type": "integer", + "format": "int" } } }, @@ -2795,19 +2811,23 @@ const docTemplate = `{ } }, "max_bitrate_mbit": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "persist": { "type": "boolean" }, "persist_interval_sec": { - "type": "integer" + "type": "integer", + "format": "int" }, "session_timeout_sec": { - "type": "integer" + "type": "integer", + "format": "int" } } }, @@ -2866,13 +2886,16 @@ const docTemplate = `{ "type": "boolean" }, "max_file_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "ttl_seconds": { - "type": "integer" + "type": "integer", + "format": "int64" }, "types": { "type": "object", @@ -2897,7 +2920,8 @@ const docTemplate = `{ "type": "string" }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -2919,7 +2943,8 @@ const docTemplate = `{ } }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" }, "purge": { "type": "boolean" @@ -2958,7 +2983,8 @@ const docTemplate = `{ "type": "boolean" }, "version": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -2975,7 +3001,8 @@ const docTemplate = `{ "type": "object", "properties": { "code": { - "type": "integer" + "type": "integer", + "format": "int" }, "details": { "type": "array", @@ -2992,13 +3019,15 @@ const docTemplate = `{ "type": "object", "properties": { "last_modified": { - "type": "integer" + "type": "integer", + "format": "int64" }, "name": { "type": "string" }, "size_bytes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3080,7 +3109,8 @@ const docTemplate = `{ "type": "object", "properties": { "interval_sec": { - "type": "integer" + "type": "integer", + "format": "int64" }, "metrics": { "type": "array", @@ -3089,7 +3119,8 @@ const docTemplate = `{ } }, "timerange_sec": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3111,7 +3142,8 @@ const docTemplate = `{ "type": "object", "properties": { "interval_sec": { - "type": "integer" + "type": "integer", + "format": "int64" }, "metrics": { "type": "array", @@ -3120,7 +3152,8 @@ const docTemplate = `{ } }, "timerange_sec": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3159,20 +3192,24 @@ const docTemplate = `{ "type": "object", "properties": { "aqueue": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "debug": {}, "drop": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "dup": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "duplicating": { "type": "boolean" }, "enc": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "gop": { "type": "string" @@ -3190,10 +3227,12 @@ const docTemplate = `{ "$ref": "#/definitions/api.PlayoutStatusIO" }, "queue": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "stream": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "swap": { "$ref": "#/definitions/api.PlayoutStatusSwap" @@ -3207,10 +3246,12 @@ const docTemplate = `{ "type": "object", "properties": { "packet": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "size_kb": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "state": { "type": "string", @@ -3220,7 +3261,8 @@ const docTemplate = `{ ] }, "time": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3265,7 +3307,8 @@ const docTemplate = `{ "type": "number" }, "channels": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "codec": { "type": "string" @@ -3284,10 +3327,12 @@ const docTemplate = `{ "type": "number" }, "height": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "index": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "language": { "type": "string" @@ -3300,10 +3345,12 @@ const docTemplate = `{ }, "sampling_hz": { "description": "audio", - "type": "integer" + "type": "integer", + "format": "uint64" }, "stream": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "type": { "type": "string" @@ -3313,7 +3360,8 @@ const docTemplate = `{ "type": "string" }, "width": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3324,7 +3372,8 @@ const docTemplate = `{ "$ref": "#/definitions/api.ProcessConfig" }, "created_at": { - "type": "integer" + "type": "integer", + "format": "int64" }, "id": { "type": "string" @@ -3382,13 +3431,15 @@ const docTemplate = `{ "type": "boolean" }, "reconnect_delay_seconds": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "reference": { "type": "string" }, "stale_timeout_seconds": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "type": { "type": "string", @@ -3432,10 +3483,12 @@ const docTemplate = `{ ], "properties": { "max_file_age_seconds": { - "type": "integer" + "type": "integer", + "format": "uint" }, "max_files": { - "type": "integer" + "type": "integer", + "format": "uint" }, "pattern": { "type": "string" @@ -3452,10 +3505,12 @@ const docTemplate = `{ "type": "number" }, "memory_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "waitfor_seconds": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3463,7 +3518,8 @@ const docTemplate = `{ "type": "object", "properties": { "created_at": { - "type": "integer" + "type": "integer", + "format": "int64" }, "history": { "type": "array", @@ -3492,7 +3548,8 @@ const docTemplate = `{ "type": "object", "properties": { "created_at": { - "type": "integer" + "type": "integer", + "format": "int64" }, "log": { "type": "array", @@ -3530,7 +3587,8 @@ const docTemplate = `{ "type": "string" }, "memory_bytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "order": { "type": "string" @@ -3539,10 +3597,12 @@ const docTemplate = `{ "$ref": "#/definitions/api.Progress" }, "reconnect_seconds": { - "type": "integer" + "type": "integer", + "format": "int64" }, "runtime_seconds": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3554,16 +3614,19 @@ const docTemplate = `{ "type": "number" }, "drop": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "dup": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "fps": { "type": "number" }, "frame": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "inputs": { "type": "array", @@ -3578,14 +3641,16 @@ const docTemplate = `{ } }, "packet": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "q": { "type": "number" }, "size_kb": { "description": "kbytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "speed": { "type": "number" @@ -3614,7 +3679,8 @@ const docTemplate = `{ "type": "number" }, "channels": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "codec": { "type": "string" @@ -3629,23 +3695,27 @@ const docTemplate = `{ "type": "number" }, "frame": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "height": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "id": { "type": "string" }, "index": { "description": "General", - "type": "integer" + "type": "integer", + "format": "uint64" }, "layout": { "type": "string" }, "packet": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "pix_fmt": { "description": "Video", @@ -3659,20 +3729,24 @@ const docTemplate = `{ }, "sampling_hz": { "description": "Audio", - "type": "integer" + "type": "integer", + "format": "uint64" }, "size_kb": { "description": "kbytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "stream": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "type": { "type": "string" }, "width": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3746,7 +3820,8 @@ const docTemplate = `{ } }, "ts": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3755,11 +3830,13 @@ const docTemplate = `{ "properties": { "avail_recv_buf_bytes": { "description": "The available space in the receiver's buffer, in bytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "avail_send_buf_bytes": { "description": "The available space in the sender's buffer, in bytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "bandwidth_mbit": { "description": "Estimated bandwidth of the network link, in Mbps", @@ -3767,11 +3844,13 @@ const docTemplate = `{ }, "flight_size_pkt": { "description": "The number of packets in flight", - "type": "integer" + "type": "integer", + "format": "uint64" }, "flow_window_pkt": { "description": "The maximum number of packets that can be \"in flight\"", - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_bandwidth_mbit": { "description": "Transmission bandwidth limit, in Mbps", @@ -3779,11 +3858,13 @@ const docTemplate = `{ }, "mss_bytes": { "description": "Maximum Segment Size (MSS), in bytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "pkt_recv_avg_belated_time_ms": { "description": "Accumulated difference between the current time and the time-to-play of a packet that is received late", - "type": "integer" + "type": "integer", + "format": "uint64" }, "pkt_send_period_us": { "description": "Current minimum time interval between which consecutive packets are sent, in microseconds", @@ -3791,79 +3872,98 @@ const docTemplate = `{ }, "recv_ack_pkt": { "description": "The total number of received ACK (Acknowledgement) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_buf_bytes": { "description": "Instantaneous (current) value of pktRcvBuf, expressed in bytes, including payload and all headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_buf_ms": { "description": "The timespan (msec) of acknowledged packets in the receiver's buffer", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_buf_pkt": { "description": "The number of acknowledged packets in receiver's buffer", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_bytes": { "description": "Same as pktRecv, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_drop_bytes": { "description": "Same as pktRcvDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_drop_pkt": { "description": "The total number of dropped by the SRT receiver and, as a result, not delivered to the upstream application DATA packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_km_pkt": { "description": "The total number of received KM (Key Material) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_loss_bytes": { "description": "Same as pktRcvLoss, but expressed in bytes, including payload and all the headers (IP, TCP, SRT), bytes for the presently missing (either reordered or lost) packets' payloads are estimated based on the average packet size", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_loss_pkt": { "description": "The total number of SRT DATA packets detected as presently missing (either reordered or lost) at the receiver side", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_nak_pkt": { "description": "The total number of received NAK (Negative Acknowledgement) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_pkt": { "description": "The total number of received DATA packets, including retransmitted packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_retran_pkts": { "description": "The total number of retransmitted packets registered at the receiver side", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_tsbpd_delay_ms": { "description": "Timestamp-based Packet Delivery Delay value set on the socket via SRTO_RCVLATENCY or SRTO_LATENCY", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_undecrypt_bytes": { "description": "Same as pktRcvUndecrypt, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_undecrypt_pkt": { "description": "The total number of packets that failed to be decrypted at the receiver side", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_unique_bytes": { "description": "Same as pktRecvUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_unique_pkt": { "description": "The total number of unique original, retransmitted or recovered by the packet filter DATA packets received in time, decrypted without errors and, as a result, scheduled for delivery to the upstream application by the SRT receiver.", - "type": "integer" + "type": "integer", + "format": "uint64" }, "reorder_tolerance_pkt": { "description": "Instant value of the packet reorder tolerance", - "type": "integer" + "type": "integer", + "format": "uint64" }, "rtt_ms": { "description": "Smoothed round-trip time (SRTT), an exponentially-weighted moving average (EWMA) of an endpoint's RTT samples, in milliseconds", @@ -3871,75 +3971,93 @@ const docTemplate = `{ }, "send_buf_bytes": { "description": "Instantaneous (current) value of pktSndBuf, but expressed in bytes, including payload and all headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_buf_ms": { "description": "The timespan (msec) of packets in the sender's buffer (unacknowledged packets)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_buf_pkt": { "description": "The number of packets in the sender's buffer that are already scheduled for sending or even possibly sent, but not yet acknowledged", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_drop_bytes": { "description": "Same as pktSndDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_drop_pkt": { "description": "The total number of dropped by the SRT sender DATA packets that have no chance to be delivered in time", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_duration_us": { "description": "The total accumulated time in microseconds, during which the SRT sender has some data to transmit, including packets that have been sent, but not yet acknowledged", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_km_pkt": { "description": "The total number of sent KM (Key Material) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_loss_pkt": { "description": "The total number of data packets considered or reported as lost at the sender side. Does not correspond to the packets detected as lost at the receiver side.", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_tsbpd_delay_ms": { "description": "Timestamp-based Packet Delivery Delay value of the peer", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_ack_pkt": { "description": "The total number of sent ACK (Acknowledgement) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_bytes": { "description": "Same as pktSent, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_nak_pkt": { "description": "The total number of sent NAK (Negative Acknowledgement) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_pkt": { "description": "The total number of sent DATA packets, including retransmitted packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_retrans_bytes": { "description": "Same as pktRetrans, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_retrans_pkt": { "description": "The total number of retransmitted packets sent by the SRT sender", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_unique_bytes": { "description": "Same as pktSentUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_unique_pkt": { "description": "The total number of unique DATA packets sent by the SRT sender", - "type": "integer" + "type": "integer", + "format": "uint64" }, "timestamp_ms": { "description": "The time elapsed, in milliseconds, since the SRT socket has been created", - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3955,13 +4073,16 @@ const docTemplate = `{ "type": "number" }, "bytes_rx": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "bytes_tx": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "created_at": { - "type": "integer" + "type": "integer", + "format": "int64" }, "extra": { "type": "string" @@ -3990,13 +4111,16 @@ const docTemplate = `{ } }, "sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_rx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_tx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -4004,13 +4128,16 @@ const docTemplate = `{ "type": "object", "properties": { "sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_rx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_tx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -4051,10 +4178,12 @@ const docTemplate = `{ "type": "number" }, "max_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -4080,13 +4209,16 @@ const docTemplate = `{ } }, "sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_rx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_tx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -4212,10 +4344,12 @@ const docTemplate = `{ "type": "object", "properties": { "force_gc": { - "type": "integer" + "type": "integer", + "format": "int" }, "memory_limit_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" }, "profiling": { "type": "boolean" @@ -4271,15 +4405,18 @@ const docTemplate = `{ "type": "object", "properties": { "max_history": { - "type": "integer" + "type": "integer", + "format": "int" }, "max_lines": { - "type": "integer" + "type": "integer", + "format": "int" } } }, "max_processes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -4314,7 +4451,8 @@ const docTemplate = `{ ] }, "max_lines": { - "type": "integer" + "type": "integer", + "format": "int" }, "topics": { "type": "array", @@ -4335,11 +4473,13 @@ const docTemplate = `{ }, "interval_sec": { "description": "seconds", - "type": "integer" + "type": "integer", + "format": "int64" }, "range_sec": { "description": "seconds", - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -4353,10 +4493,12 @@ const docTemplate = `{ "type": "boolean" }, "max_port": { - "type": "integer" + "type": "integer", + "format": "int" }, "min_port": { - "type": "integer" + "type": "integer", + "format": "int" } } }, @@ -4430,19 +4572,23 @@ const docTemplate = `{ } }, "max_bitrate_mbit": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "persist": { "type": "boolean" }, "persist_interval_sec": { - "type": "integer" + "type": "integer", + "format": "int" }, "session_timeout_sec": { - "type": "integer" + "type": "integer", + "format": "int" } } }, @@ -4501,13 +4647,16 @@ const docTemplate = `{ "type": "boolean" }, "max_file_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "ttl_seconds": { - "type": "integer" + "type": "integer", + "format": "int64" }, "types": { "type": "object", @@ -4532,7 +4681,8 @@ const docTemplate = `{ "type": "string" }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -4554,7 +4704,8 @@ const docTemplate = `{ } }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" }, "purge": { "type": "boolean" @@ -4593,7 +4744,8 @@ const docTemplate = `{ "type": "boolean" }, "version": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -4850,10 +5002,12 @@ const docTemplate = `{ "type": "object", "properties": { "current_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "total_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "uptime": { "type": "integer" diff --git a/docs/swagger.json b/docs/swagger.json index 64d93b2c..966e1e49 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -2364,19 +2364,23 @@ "type": "object", "properties": { "aqueue": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "drop": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "dup": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "duplicating": { "type": "boolean" }, "enc": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "gop": { "type": "string" @@ -2391,7 +2395,8 @@ "$ref": "#/definitions/api.AVstreamIO" }, "queue": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -2399,7 +2404,8 @@ "type": "object", "properties": { "packet": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "size_kb": { "type": "integer" @@ -2569,10 +2575,12 @@ "type": "object", "properties": { "force_gc": { - "type": "integer" + "type": "integer", + "format": "int" }, "memory_limit_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" }, "profiling": { "type": "boolean" @@ -2628,15 +2636,18 @@ "type": "object", "properties": { "max_history": { - "type": "integer" + "type": "integer", + "format": "int" }, "max_lines": { - "type": "integer" + "type": "integer", + "format": "int" } } }, "max_processes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -2671,7 +2682,8 @@ ] }, "max_lines": { - "type": "integer" + "type": "integer", + "format": "int" }, "topics": { "type": "array", @@ -2692,11 +2704,13 @@ }, "interval_sec": { "description": "seconds", - "type": "integer" + "type": "integer", + "format": "int64" }, "range_sec": { "description": "seconds", - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -2710,10 +2724,12 @@ "type": "boolean" }, "max_port": { - "type": "integer" + "type": "integer", + "format": "int" }, "min_port": { - "type": "integer" + "type": "integer", + "format": "int" } } }, @@ -2787,19 +2803,23 @@ } }, "max_bitrate_mbit": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "persist": { "type": "boolean" }, "persist_interval_sec": { - "type": "integer" + "type": "integer", + "format": "int" }, "session_timeout_sec": { - "type": "integer" + "type": "integer", + "format": "int" } } }, @@ -2858,13 +2878,16 @@ "type": "boolean" }, "max_file_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "ttl_seconds": { - "type": "integer" + "type": "integer", + "format": "int64" }, "types": { "type": "object", @@ -2889,7 +2912,8 @@ "type": "string" }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -2911,7 +2935,8 @@ } }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" }, "purge": { "type": "boolean" @@ -2950,7 +2975,8 @@ "type": "boolean" }, "version": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -2967,7 +2993,8 @@ "type": "object", "properties": { "code": { - "type": "integer" + "type": "integer", + "format": "int" }, "details": { "type": "array", @@ -2984,13 +3011,15 @@ "type": "object", "properties": { "last_modified": { - "type": "integer" + "type": "integer", + "format": "int64" }, "name": { "type": "string" }, "size_bytes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3072,7 +3101,8 @@ "type": "object", "properties": { "interval_sec": { - "type": "integer" + "type": "integer", + "format": "int64" }, "metrics": { "type": "array", @@ -3081,7 +3111,8 @@ } }, "timerange_sec": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3103,7 +3134,8 @@ "type": "object", "properties": { "interval_sec": { - "type": "integer" + "type": "integer", + "format": "int64" }, "metrics": { "type": "array", @@ -3112,7 +3144,8 @@ } }, "timerange_sec": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3151,20 +3184,24 @@ "type": "object", "properties": { "aqueue": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "debug": {}, "drop": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "dup": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "duplicating": { "type": "boolean" }, "enc": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "gop": { "type": "string" @@ -3182,10 +3219,12 @@ "$ref": "#/definitions/api.PlayoutStatusIO" }, "queue": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "stream": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "swap": { "$ref": "#/definitions/api.PlayoutStatusSwap" @@ -3199,10 +3238,12 @@ "type": "object", "properties": { "packet": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "size_kb": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "state": { "type": "string", @@ -3212,7 +3253,8 @@ ] }, "time": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3257,7 +3299,8 @@ "type": "number" }, "channels": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "codec": { "type": "string" @@ -3276,10 +3319,12 @@ "type": "number" }, "height": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "index": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "language": { "type": "string" @@ -3292,10 +3337,12 @@ }, "sampling_hz": { "description": "audio", - "type": "integer" + "type": "integer", + "format": "uint64" }, "stream": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "type": { "type": "string" @@ -3305,7 +3352,8 @@ "type": "string" }, "width": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3316,7 +3364,8 @@ "$ref": "#/definitions/api.ProcessConfig" }, "created_at": { - "type": "integer" + "type": "integer", + "format": "int64" }, "id": { "type": "string" @@ -3374,13 +3423,15 @@ "type": "boolean" }, "reconnect_delay_seconds": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "reference": { "type": "string" }, "stale_timeout_seconds": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "type": { "type": "string", @@ -3424,10 +3475,12 @@ ], "properties": { "max_file_age_seconds": { - "type": "integer" + "type": "integer", + "format": "uint" }, "max_files": { - "type": "integer" + "type": "integer", + "format": "uint" }, "pattern": { "type": "string" @@ -3444,10 +3497,12 @@ "type": "number" }, "memory_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "waitfor_seconds": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3455,7 +3510,8 @@ "type": "object", "properties": { "created_at": { - "type": "integer" + "type": "integer", + "format": "int64" }, "history": { "type": "array", @@ -3484,7 +3540,8 @@ "type": "object", "properties": { "created_at": { - "type": "integer" + "type": "integer", + "format": "int64" }, "log": { "type": "array", @@ -3522,7 +3579,8 @@ "type": "string" }, "memory_bytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "order": { "type": "string" @@ -3531,10 +3589,12 @@ "$ref": "#/definitions/api.Progress" }, "reconnect_seconds": { - "type": "integer" + "type": "integer", + "format": "int64" }, "runtime_seconds": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3546,16 +3606,19 @@ "type": "number" }, "drop": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "dup": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "fps": { "type": "number" }, "frame": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "inputs": { "type": "array", @@ -3570,14 +3633,16 @@ } }, "packet": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "q": { "type": "number" }, "size_kb": { "description": "kbytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "speed": { "type": "number" @@ -3606,7 +3671,8 @@ "type": "number" }, "channels": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "codec": { "type": "string" @@ -3621,23 +3687,27 @@ "type": "number" }, "frame": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "height": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "id": { "type": "string" }, "index": { "description": "General", - "type": "integer" + "type": "integer", + "format": "uint64" }, "layout": { "type": "string" }, "packet": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "pix_fmt": { "description": "Video", @@ -3651,20 +3721,24 @@ }, "sampling_hz": { "description": "Audio", - "type": "integer" + "type": "integer", + "format": "uint64" }, "size_kb": { "description": "kbytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "stream": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "type": { "type": "string" }, "width": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3738,7 +3812,8 @@ } }, "ts": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -3747,11 +3822,13 @@ "properties": { "avail_recv_buf_bytes": { "description": "The available space in the receiver's buffer, in bytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "avail_send_buf_bytes": { "description": "The available space in the sender's buffer, in bytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "bandwidth_mbit": { "description": "Estimated bandwidth of the network link, in Mbps", @@ -3759,11 +3836,13 @@ }, "flight_size_pkt": { "description": "The number of packets in flight", - "type": "integer" + "type": "integer", + "format": "uint64" }, "flow_window_pkt": { "description": "The maximum number of packets that can be \"in flight\"", - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_bandwidth_mbit": { "description": "Transmission bandwidth limit, in Mbps", @@ -3771,11 +3850,13 @@ }, "mss_bytes": { "description": "Maximum Segment Size (MSS), in bytes", - "type": "integer" + "type": "integer", + "format": "uint64" }, "pkt_recv_avg_belated_time_ms": { "description": "Accumulated difference between the current time and the time-to-play of a packet that is received late", - "type": "integer" + "type": "integer", + "format": "uint64" }, "pkt_send_period_us": { "description": "Current minimum time interval between which consecutive packets are sent, in microseconds", @@ -3783,79 +3864,98 @@ }, "recv_ack_pkt": { "description": "The total number of received ACK (Acknowledgement) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_buf_bytes": { "description": "Instantaneous (current) value of pktRcvBuf, expressed in bytes, including payload and all headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_buf_ms": { "description": "The timespan (msec) of acknowledged packets in the receiver's buffer", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_buf_pkt": { "description": "The number of acknowledged packets in receiver's buffer", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_bytes": { "description": "Same as pktRecv, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_drop_bytes": { "description": "Same as pktRcvDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_drop_pkt": { "description": "The total number of dropped by the SRT receiver and, as a result, not delivered to the upstream application DATA packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_km_pkt": { "description": "The total number of received KM (Key Material) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_loss_bytes": { "description": "Same as pktRcvLoss, but expressed in bytes, including payload and all the headers (IP, TCP, SRT), bytes for the presently missing (either reordered or lost) packets' payloads are estimated based on the average packet size", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_loss_pkt": { "description": "The total number of SRT DATA packets detected as presently missing (either reordered or lost) at the receiver side", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_nak_pkt": { "description": "The total number of received NAK (Negative Acknowledgement) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_pkt": { "description": "The total number of received DATA packets, including retransmitted packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_retran_pkts": { "description": "The total number of retransmitted packets registered at the receiver side", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_tsbpd_delay_ms": { "description": "Timestamp-based Packet Delivery Delay value set on the socket via SRTO_RCVLATENCY or SRTO_LATENCY", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_undecrypt_bytes": { "description": "Same as pktRcvUndecrypt, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_undecrypt_pkt": { "description": "The total number of packets that failed to be decrypted at the receiver side", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_unique_bytes": { "description": "Same as pktRecvUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "recv_unique_pkt": { "description": "The total number of unique original, retransmitted or recovered by the packet filter DATA packets received in time, decrypted without errors and, as a result, scheduled for delivery to the upstream application by the SRT receiver.", - "type": "integer" + "type": "integer", + "format": "uint64" }, "reorder_tolerance_pkt": { "description": "Instant value of the packet reorder tolerance", - "type": "integer" + "type": "integer", + "format": "uint64" }, "rtt_ms": { "description": "Smoothed round-trip time (SRTT), an exponentially-weighted moving average (EWMA) of an endpoint's RTT samples, in milliseconds", @@ -3863,75 +3963,93 @@ }, "send_buf_bytes": { "description": "Instantaneous (current) value of pktSndBuf, but expressed in bytes, including payload and all headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_buf_ms": { "description": "The timespan (msec) of packets in the sender's buffer (unacknowledged packets)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_buf_pkt": { "description": "The number of packets in the sender's buffer that are already scheduled for sending or even possibly sent, but not yet acknowledged", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_drop_bytes": { "description": "Same as pktSndDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_drop_pkt": { "description": "The total number of dropped by the SRT sender DATA packets that have no chance to be delivered in time", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_duration_us": { "description": "The total accumulated time in microseconds, during which the SRT sender has some data to transmit, including packets that have been sent, but not yet acknowledged", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_km_pkt": { "description": "The total number of sent KM (Key Material) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_loss_pkt": { "description": "The total number of data packets considered or reported as lost at the sender side. Does not correspond to the packets detected as lost at the receiver side.", - "type": "integer" + "type": "integer", + "format": "uint64" }, "send_tsbpd_delay_ms": { "description": "Timestamp-based Packet Delivery Delay value of the peer", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_ack_pkt": { "description": "The total number of sent ACK (Acknowledgement) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_bytes": { "description": "Same as pktSent, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_nak_pkt": { "description": "The total number of sent NAK (Negative Acknowledgement) control packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_pkt": { "description": "The total number of sent DATA packets, including retransmitted packets", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_retrans_bytes": { "description": "Same as pktRetrans, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_retrans_pkt": { "description": "The total number of retransmitted packets sent by the SRT sender", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_unique_bytes": { "description": "Same as pktSentUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)", - "type": "integer" + "type": "integer", + "format": "uint64" }, "sent_unique_pkt": { "description": "The total number of unique DATA packets sent by the SRT sender", - "type": "integer" + "type": "integer", + "format": "uint64" }, "timestamp_ms": { "description": "The time elapsed, in milliseconds, since the SRT socket has been created", - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3947,13 +4065,16 @@ "type": "number" }, "bytes_rx": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "bytes_tx": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "created_at": { - "type": "integer" + "type": "integer", + "format": "int64" }, "extra": { "type": "string" @@ -3982,13 +4103,16 @@ } }, "sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_rx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_tx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -3996,13 +4120,16 @@ "type": "object", "properties": { "sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_rx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_tx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -4043,10 +4170,12 @@ "type": "number" }, "max_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -4072,13 +4201,16 @@ } }, "sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_rx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "traffic_tx_mb": { - "type": "integer" + "type": "integer", + "format": "uint64" } } }, @@ -4204,10 +4336,12 @@ "type": "object", "properties": { "force_gc": { - "type": "integer" + "type": "integer", + "format": "int" }, "memory_limit_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" }, "profiling": { "type": "boolean" @@ -4263,15 +4397,18 @@ "type": "object", "properties": { "max_history": { - "type": "integer" + "type": "integer", + "format": "int" }, "max_lines": { - "type": "integer" + "type": "integer", + "format": "int" } } }, "max_processes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -4306,7 +4443,8 @@ ] }, "max_lines": { - "type": "integer" + "type": "integer", + "format": "int" }, "topics": { "type": "array", @@ -4327,11 +4465,13 @@ }, "interval_sec": { "description": "seconds", - "type": "integer" + "type": "integer", + "format": "int64" }, "range_sec": { "description": "seconds", - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -4345,10 +4485,12 @@ "type": "boolean" }, "max_port": { - "type": "integer" + "type": "integer", + "format": "int" }, "min_port": { - "type": "integer" + "type": "integer", + "format": "int" } } }, @@ -4422,19 +4564,23 @@ } }, "max_bitrate_mbit": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "persist": { "type": "boolean" }, "persist_interval_sec": { - "type": "integer" + "type": "integer", + "format": "int" }, "session_timeout_sec": { - "type": "integer" + "type": "integer", + "format": "int" } } }, @@ -4493,13 +4639,16 @@ "type": "boolean" }, "max_file_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "ttl_seconds": { - "type": "integer" + "type": "integer", + "format": "int64" }, "types": { "type": "object", @@ -4524,7 +4673,8 @@ "type": "string" }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -4546,7 +4696,8 @@ } }, "max_size_mbytes": { - "type": "integer" + "type": "integer", + "format": "int64" }, "purge": { "type": "boolean" @@ -4585,7 +4736,8 @@ "type": "boolean" }, "version": { - "type": "integer" + "type": "integer", + "format": "int64" } } }, @@ -4842,10 +4994,12 @@ "type": "object", "properties": { "current_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "total_sessions": { - "type": "integer" + "type": "integer", + "format": "uint64" }, "uptime": { "type": "integer" diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 6b67f3a4..5923d296 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -3,14 +3,18 @@ definitions: api.AVstream: properties: aqueue: + format: uint64 type: integer drop: + format: uint64 type: integer dup: + format: uint64 type: integer duplicating: type: boolean enc: + format: uint64 type: integer gop: type: string @@ -21,11 +25,13 @@ definitions: output: $ref: '#/definitions/api.AVstreamIO' queue: + format: uint64 type: integer type: object api.AVstreamIO: properties: packet: + format: uint64 type: integer size_kb: type: integer @@ -137,8 +143,10 @@ definitions: debug: properties: force_gc: + format: int type: integer memory_limit_mbytes: + format: int64 type: integer profiling: type: boolean @@ -175,11 +183,14 @@ definitions: log: properties: max_history: + format: int type: integer max_lines: + format: int type: integer type: object max_processes: + format: int64 type: integer type: object host: @@ -204,6 +215,7 @@ definitions: - silent type: string max_lines: + format: int type: integer topics: items: @@ -218,9 +230,11 @@ definitions: type: boolean interval_sec: description: seconds + format: int64 type: integer range_sec: description: seconds + format: int64 type: integer type: object name: @@ -230,8 +244,10 @@ definitions: enable: type: boolean max_port: + format: int type: integer min_port: + format: int type: integer type: object router: @@ -280,14 +296,18 @@ definitions: type: string type: array max_bitrate_mbit: + format: uint64 type: integer max_sessions: + format: uint64 type: integer persist: type: boolean persist_interval_sec: + format: int type: integer session_timeout_sec: + format: int type: integer type: object srt: @@ -326,10 +346,13 @@ definitions: enable: type: boolean max_file_size_mbytes: + format: uint64 type: integer max_size_mbytes: + format: uint64 type: integer ttl_seconds: + format: int64 type: integer types: properties: @@ -346,6 +369,7 @@ definitions: dir: type: string max_size_mbytes: + format: int64 type: integer type: object memory: @@ -360,6 +384,7 @@ definitions: type: string type: object max_size_mbytes: + format: int64 type: integer purge: type: boolean @@ -385,6 +410,7 @@ definitions: update_check: type: boolean version: + format: int64 type: integer type: object api.ConfigError: @@ -396,6 +422,7 @@ definitions: api.Error: properties: code: + format: int type: integer details: items: @@ -407,10 +434,12 @@ definitions: api.FileInfo: properties: last_modified: + format: int64 type: integer name: type: string size_bytes: + format: int64 type: integer type: object api.GraphQuery: @@ -465,12 +494,14 @@ definitions: api.MetricsQuery: properties: interval_sec: + format: int64 type: integer metrics: items: $ref: '#/definitions/api.MetricsQueryMetric' type: array timerange_sec: + format: int64 type: integer type: object api.MetricsQueryMetric: @@ -485,12 +516,14 @@ definitions: api.MetricsResponse: properties: interval_sec: + format: int64 type: integer metrics: items: $ref: '#/definitions/api.MetricsResponseMetric' type: array timerange_sec: + format: int64 type: integer type: object api.MetricsResponseMetric: @@ -516,15 +549,19 @@ definitions: api.PlayoutStatus: properties: aqueue: + format: uint64 type: integer debug: {} drop: + format: uint64 type: integer dup: + format: uint64 type: integer duplicating: type: boolean enc: + format: uint64 type: integer gop: type: string @@ -537,8 +574,10 @@ definitions: output: $ref: '#/definitions/api.PlayoutStatusIO' queue: + format: uint64 type: integer stream: + format: uint64 type: integer swap: $ref: '#/definitions/api.PlayoutStatusSwap' @@ -548,8 +587,10 @@ definitions: api.PlayoutStatusIO: properties: packet: + format: uint64 type: integer size_kb: + format: uint64 type: integer state: enum: @@ -557,6 +598,7 @@ definitions: - idle type: string time: + format: uint64 type: integer type: object api.PlayoutStatusSwap: @@ -586,6 +628,7 @@ definitions: bitrate_kbps: type: number channels: + format: uint64 type: integer codec: type: string @@ -599,8 +642,10 @@ definitions: description: video type: number height: + format: uint64 type: integer index: + format: uint64 type: integer language: type: string @@ -610,8 +655,10 @@ definitions: type: string sampling_hz: description: audio + format: uint64 type: integer stream: + format: uint64 type: integer type: type: string @@ -619,6 +666,7 @@ definitions: description: common type: string width: + format: uint64 type: integer type: object api.Process: @@ -626,6 +674,7 @@ definitions: config: $ref: '#/definitions/api.ProcessConfig' created_at: + format: int64 type: integer id: type: string @@ -662,10 +711,12 @@ definitions: reconnect: type: boolean reconnect_delay_seconds: + format: uint64 type: integer reference: type: string stale_timeout_seconds: + format: uint64 type: integer type: enum: @@ -696,8 +747,10 @@ definitions: api.ProcessConfigIOCleanup: properties: max_file_age_seconds: + format: uint type: integer max_files: + format: uint type: integer pattern: type: string @@ -711,13 +764,16 @@ definitions: cpu_usage: type: number memory_mbytes: + format: uint64 type: integer waitfor_seconds: + format: uint64 type: integer type: object api.ProcessReport: properties: created_at: + format: int64 type: integer history: items: @@ -737,6 +793,7 @@ definitions: api.ProcessReportHistoryEntry: properties: created_at: + format: int64 type: integer log: items: @@ -762,14 +819,17 @@ definitions: last_logline: type: string memory_bytes: + format: uint64 type: integer order: type: string progress: $ref: '#/definitions/api.Progress' reconnect_seconds: + format: int64 type: integer runtime_seconds: + format: int64 type: integer type: object api.Progress: @@ -778,12 +838,15 @@ definitions: description: kbit/s type: number drop: + format: uint64 type: integer dup: + format: uint64 type: integer fps: type: number frame: + format: uint64 type: integer inputs: items: @@ -794,11 +857,13 @@ definitions: $ref: '#/definitions/api.ProgressIO' type: array packet: + format: uint64 type: integer q: type: number size_kb: description: kbytes + format: uint64 type: integer speed: type: number @@ -817,6 +882,7 @@ definitions: description: kbit/s type: number channels: + format: uint64 type: integer codec: type: string @@ -827,17 +893,21 @@ definitions: fps: type: number frame: + format: uint64 type: integer height: + format: uint64 type: integer id: type: string index: description: General + format: uint64 type: integer layout: type: string packet: + format: uint64 type: integer pix_fmt: description: Video @@ -848,15 +918,19 @@ definitions: type: number sampling_hz: description: Audio + format: uint64 type: integer size_kb: description: kbytes + format: uint64 type: integer stream: + format: uint64 type: integer type: type: string width: + format: uint64 type: integer type: object api.RTMPChannel: @@ -905,34 +979,41 @@ definitions: type: string type: array ts: + format: int64 type: integer type: object api.SRTStatistics: properties: avail_recv_buf_bytes: description: The available space in the receiver's buffer, in bytes + format: uint64 type: integer avail_send_buf_bytes: description: The available space in the sender's buffer, in bytes + format: uint64 type: integer bandwidth_mbit: description: Estimated bandwidth of the network link, in Mbps type: number flight_size_pkt: description: The number of packets in flight + format: uint64 type: integer flow_window_pkt: description: The maximum number of packets that can be "in flight" + format: uint64 type: integer max_bandwidth_mbit: description: Transmission bandwidth limit, in Mbps type: number mss_bytes: description: Maximum Segment Size (MSS), in bytes + format: uint64 type: integer pkt_recv_avg_belated_time_ms: description: Accumulated difference between the current time and the time-to-play of a packet that is received late + format: uint64 type: integer pkt_send_period_us: description: Current minimum time interval between which consecutive packets @@ -940,79 +1021,98 @@ definitions: type: number recv_ack_pkt: description: The total number of received ACK (Acknowledgement) control packets + format: uint64 type: integer recv_buf_bytes: description: Instantaneous (current) value of pktRcvBuf, expressed in bytes, including payload and all headers (IP, TCP, SRT) + format: uint64 type: integer recv_buf_ms: description: The timespan (msec) of acknowledged packets in the receiver's buffer + format: uint64 type: integer recv_buf_pkt: description: The number of acknowledged packets in receiver's buffer + format: uint64 type: integer recv_bytes: description: Same as pktRecv, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + format: uint64 type: integer recv_drop_bytes: description: Same as pktRcvDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + format: uint64 type: integer recv_drop_pkt: description: The total number of dropped by the SRT receiver and, as a result, not delivered to the upstream application DATA packets + format: uint64 type: integer recv_km_pkt: description: The total number of received KM (Key Material) control packets + format: uint64 type: integer recv_loss_bytes: description: Same as pktRcvLoss, but expressed in bytes, including payload and all the headers (IP, TCP, SRT), bytes for the presently missing (either reordered or lost) packets' payloads are estimated based on the average packet size + format: uint64 type: integer recv_loss_pkt: description: The total number of SRT DATA packets detected as presently missing (either reordered or lost) at the receiver side + format: uint64 type: integer recv_nak_pkt: description: The total number of received NAK (Negative Acknowledgement) control packets + format: uint64 type: integer recv_pkt: description: The total number of received DATA packets, including retransmitted packets + format: uint64 type: integer recv_retran_pkts: description: The total number of retransmitted packets registered at the receiver side + format: uint64 type: integer recv_tsbpd_delay_ms: description: Timestamp-based Packet Delivery Delay value set on the socket via SRTO_RCVLATENCY or SRTO_LATENCY + format: uint64 type: integer recv_undecrypt_bytes: description: Same as pktRcvUndecrypt, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + format: uint64 type: integer recv_undecrypt_pkt: description: The total number of packets that failed to be decrypted at the receiver side + format: uint64 type: integer recv_unique_bytes: description: Same as pktRecvUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + format: uint64 type: integer recv_unique_pkt: description: The total number of unique original, retransmitted or recovered by the packet filter DATA packets received in time, decrypted without errors and, as a result, scheduled for delivery to the upstream application by the SRT receiver. + format: uint64 type: integer reorder_tolerance_pkt: description: Instant value of the packet reorder tolerance + format: uint64 type: integer rtt_ms: description: Smoothed round-trip time (SRTT), an exponentially-weighted moving @@ -1021,71 +1121,89 @@ definitions: send_buf_bytes: description: Instantaneous (current) value of pktSndBuf, but expressed in bytes, including payload and all headers (IP, TCP, SRT) + format: uint64 type: integer send_buf_ms: description: The timespan (msec) of packets in the sender's buffer (unacknowledged packets) + format: uint64 type: integer send_buf_pkt: description: The number of packets in the sender's buffer that are already scheduled for sending or even possibly sent, but not yet acknowledged + format: uint64 type: integer send_drop_bytes: description: Same as pktSndDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + format: uint64 type: integer send_drop_pkt: description: The total number of dropped by the SRT sender DATA packets that have no chance to be delivered in time + format: uint64 type: integer send_duration_us: description: The total accumulated time in microseconds, during which the SRT sender has some data to transmit, including packets that have been sent, but not yet acknowledged + format: uint64 type: integer send_km_pkt: description: The total number of sent KM (Key Material) control packets + format: uint64 type: integer send_loss_pkt: description: The total number of data packets considered or reported as lost at the sender side. Does not correspond to the packets detected as lost at the receiver side. + format: uint64 type: integer send_tsbpd_delay_ms: description: Timestamp-based Packet Delivery Delay value of the peer + format: uint64 type: integer sent_ack_pkt: description: The total number of sent ACK (Acknowledgement) control packets + format: uint64 type: integer sent_bytes: description: Same as pktSent, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + format: uint64 type: integer sent_nak_pkt: description: The total number of sent NAK (Negative Acknowledgement) control packets + format: uint64 type: integer sent_pkt: description: The total number of sent DATA packets, including retransmitted packets + format: uint64 type: integer sent_retrans_bytes: description: Same as pktRetrans, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + format: uint64 type: integer sent_retrans_pkt: description: The total number of retransmitted packets sent by the SRT sender + format: uint64 type: integer sent_unique_bytes: description: Same as pktSentUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + format: uint64 type: integer sent_unique_pkt: description: The total number of unique DATA packets sent by the SRT sender + format: uint64 type: integer timestamp_ms: description: The time elapsed, in milliseconds, since the SRT socket has been created + format: uint64 type: integer type: object api.Session: @@ -1097,10 +1215,13 @@ definitions: description: kbit/s type: number bytes_rx: + format: uint64 type: integer bytes_tx: + format: uint64 type: integer created_at: + format: int64 type: integer extra: type: string @@ -1120,19 +1241,25 @@ definitions: $ref: '#/definitions/api.SessionStats' type: object sessions: + format: uint64 type: integer traffic_rx_mb: + format: uint64 type: integer traffic_tx_mb: + format: uint64 type: integer type: object api.SessionStats: properties: sessions: + format: uint64 type: integer traffic_rx_mb: + format: uint64 type: integer traffic_tx_mb: + format: uint64 type: integer type: object api.SessionSummary: @@ -1161,8 +1288,10 @@ definitions: description: mbit/s type: number max_sessions: + format: uint64 type: integer sessions: + format: uint64 type: integer type: object api.SessionSummarySummary: @@ -1180,10 +1309,13 @@ definitions: $ref: '#/definitions/api.SessionPeers' type: object sessions: + format: uint64 type: integer traffic_rx_mb: + format: uint64 type: integer traffic_tx_mb: + format: uint64 type: integer type: object api.SessionsActive: @@ -1265,8 +1397,10 @@ definitions: debug: properties: force_gc: + format: int type: integer memory_limit_mbytes: + format: int64 type: integer profiling: type: boolean @@ -1303,11 +1437,14 @@ definitions: log: properties: max_history: + format: int type: integer max_lines: + format: int type: integer type: object max_processes: + format: int64 type: integer type: object host: @@ -1332,6 +1469,7 @@ definitions: - silent type: string max_lines: + format: int type: integer topics: items: @@ -1346,9 +1484,11 @@ definitions: type: boolean interval_sec: description: seconds + format: int64 type: integer range_sec: description: seconds + format: int64 type: integer type: object name: @@ -1358,8 +1498,10 @@ definitions: enable: type: boolean max_port: + format: int type: integer min_port: + format: int type: integer type: object router: @@ -1408,14 +1550,18 @@ definitions: type: string type: array max_bitrate_mbit: + format: uint64 type: integer max_sessions: + format: uint64 type: integer persist: type: boolean persist_interval_sec: + format: int type: integer session_timeout_sec: + format: int type: integer type: object srt: @@ -1454,10 +1600,13 @@ definitions: enable: type: boolean max_file_size_mbytes: + format: uint64 type: integer max_size_mbytes: + format: uint64 type: integer ttl_seconds: + format: int64 type: integer types: properties: @@ -1474,6 +1623,7 @@ definitions: dir: type: string max_size_mbytes: + format: int64 type: integer type: object memory: @@ -1488,6 +1638,7 @@ definitions: type: string type: object max_size_mbytes: + format: int64 type: integer purge: type: boolean @@ -1513,6 +1664,7 @@ definitions: update_check: type: boolean version: + format: int64 type: integer type: object api.Skills: @@ -1679,8 +1831,10 @@ definitions: api.WidgetProcess: properties: current_sessions: + format: uint64 type: integer total_sessions: + format: uint64 type: integer uptime: type: integer diff --git a/http/api/avstream.go b/http/api/avstream.go index 0a9c5044..279b3352 100644 --- a/http/api/avstream.go +++ b/http/api/avstream.go @@ -6,7 +6,7 @@ import ( type AVstreamIO struct { State string `json:"state" enums:"running,idle" jsonschema:"enum=running,enum=idle"` - Packet uint64 `json:"packet"` + Packet uint64 `json:"packet" format:"uint64"` Time uint64 `json:"time"` Size uint64 `json:"size_kb"` } @@ -25,11 +25,11 @@ func (i *AVstreamIO) Unmarshal(io *app.AVstreamIO) { type AVstream struct { Input AVstreamIO `json:"input"` Output AVstreamIO `json:"output"` - Aqueue uint64 `json:"aqueue"` - Queue uint64 `json:"queue"` - Dup uint64 `json:"dup"` - Drop uint64 `json:"drop"` - Enc uint64 `json:"enc"` + Aqueue uint64 `json:"aqueue" format:"uint64"` + Queue uint64 `json:"queue" format:"uint64"` + Dup uint64 `json:"dup" format:"uint64"` + Drop uint64 `json:"drop" format:"uint64"` + Enc uint64 `json:"enc" format:"uint64"` Looping bool `json:"looping"` Duplicating bool `json:"duplicating"` GOP string `json:"gop"` diff --git a/http/api/error.go b/http/api/error.go index 07477568..a87ef95a 100644 --- a/http/api/error.go +++ b/http/api/error.go @@ -8,7 +8,7 @@ import ( // Error represents an error response of the API type Error struct { - Code int `json:"code" jsonschema:"required"` + Code int `json:"code" jsonschema:"required" format:"int"` Message string `json:"message" jsonschema:""` Details []string `json:"details" jsonschema:""` } diff --git a/http/api/fs.go b/http/api/fs.go index c7d12eb4..540670d2 100644 --- a/http/api/fs.go +++ b/http/api/fs.go @@ -3,6 +3,6 @@ package api // FileInfo represents informatiion about a file on a filesystem type FileInfo struct { Name string `json:"name" jsonschema:"minLength=1"` - Size int64 `json:"size_bytes" jsonschema:"minimum=0"` - LastMod int64 `json:"last_modified" jsonschema:"minimum=0"` + Size int64 `json:"size_bytes" jsonschema:"minimum=0" format:"int64"` + LastMod int64 `json:"last_modified" jsonschema:"minimum=0" format:"int64"` } diff --git a/http/api/metrics.go b/http/api/metrics.go index 49b184f9..f2476988 100644 --- a/http/api/metrics.go +++ b/http/api/metrics.go @@ -19,8 +19,8 @@ type MetricsQueryMetric struct { } type MetricsQuery struct { - Timerange int64 `json:"timerange_sec"` - Interval int64 `json:"interval_sec"` + Timerange int64 `json:"timerange_sec" format:"int64"` + Interval int64 `json:"interval_sec" format:"int64"` Metrics []MetricsQueryMetric `json:"metrics"` } @@ -51,8 +51,8 @@ func (v MetricsResponseValue) MarshalJSON() ([]byte, error) { } type MetricsResponse struct { - Timerange int64 `json:"timerange_sec"` - Interval int64 `json:"interval_sec"` + Timerange int64 `json:"timerange_sec" format:"int64"` + Interval int64 `json:"interval_sec" format:"int64"` Metrics []MetricsResponseMetric `json:"metrics"` } diff --git a/http/api/playout.go b/http/api/playout.go index 22a192d4..ae2b0b9d 100644 --- a/http/api/playout.go +++ b/http/api/playout.go @@ -4,9 +4,9 @@ import "github.com/datarhei/core/v16/playout" type PlayoutStatusIO struct { State string `json:"state" enums:"running,idle" jsonschema:"enum=running,enum=idle"` - Packet uint64 `json:"packet"` - Time uint64 `json:"time"` - Size uint64 `json:"size_kb"` + Packet uint64 `json:"packet" format:"uint64"` + Time uint64 `json:"time" format:"uint64"` + Size uint64 `json:"size_kb" format:"uint64"` } func (i *PlayoutStatusIO) Unmarshal(io playout.StatusIO) { @@ -33,12 +33,12 @@ func (s *PlayoutStatusSwap) Unmarshal(swap playout.StatusSwap) { type PlayoutStatus struct { ID string `json:"id"` Address string `json:"url"` - Stream uint64 `json:"stream"` - Queue uint64 `json:"queue"` - AQueue uint64 `json:"aqueue"` - Dup uint64 `json:"dup"` - Drop uint64 `json:"drop"` - Enc uint64 `json:"enc"` + Stream uint64 `json:"stream" format:"uint64"` + Queue uint64 `json:"queue" format:"uint64"` + AQueue uint64 `json:"aqueue" format:"uint64"` + Dup uint64 `json:"dup" format:"uint64"` + Drop uint64 `json:"drop" format:"uint64"` + Enc uint64 `json:"enc" format:"uint64"` Looping bool `json:"looping"` Duplicating bool `json:"duplicating"` GOP string `json:"gop"` diff --git a/http/api/probe.go b/http/api/probe.go index 3c538dcc..dda8b260 100644 --- a/http/api/probe.go +++ b/http/api/probe.go @@ -11,8 +11,8 @@ type ProbeIO struct { // common Address string `json:"url"` Format string `json:"format"` - Index uint64 `json:"index"` - Stream uint64 `json:"stream"` + Index uint64 `json:"index" format:"uint64"` + Stream uint64 `json:"stream" format:"uint64"` Language string `json:"language"` Type string `json:"type"` Codec string `json:"codec"` @@ -23,13 +23,13 @@ type ProbeIO struct { // video FPS json.Number `json:"fps" swaggertype:"number" jsonschema:"type=number"` Pixfmt string `json:"pix_fmt"` - Width uint64 `json:"width"` - Height uint64 `json:"height"` + Width uint64 `json:"width" format:"uint64"` + Height uint64 `json:"height" format:"uint64"` // audio - Sampling uint64 `json:"sampling_hz"` + Sampling uint64 `json:"sampling_hz" format:"uint64"` Layout string `json:"layout"` - Channels uint64 `json:"channels"` + Channels uint64 `json:"channels" format:"uint64"` } func (i *ProbeIO) Unmarshal(io *app.ProbeIO) { diff --git a/http/api/process.go b/http/api/process.go index 7365e176..e217b455 100644 --- a/http/api/process.go +++ b/http/api/process.go @@ -13,7 +13,7 @@ type Process struct { ID string `json:"id" jsonschema:"minLength=1"` Type string `json:"type" jsonschema:"enum=ffmpeg"` Reference string `json:"reference"` - CreatedAt int64 `json:"created_at" jsonschema:"minimum=0"` + CreatedAt int64 `json:"created_at" jsonschema:"minimum=0" format:"int64"` Config *ProcessConfig `json:"config,omitempty"` State *ProcessState `json:"state,omitempty"` Report *ProcessReport `json:"report,omitempty"` @@ -30,15 +30,15 @@ type ProcessConfigIO struct { type ProcessConfigIOCleanup struct { Pattern string `json:"pattern" validate:"required"` - MaxFiles uint `json:"max_files"` - MaxFileAge uint `json:"max_file_age_seconds"` + MaxFiles uint `json:"max_files" format:"uint"` + MaxFileAge uint `json:"max_file_age_seconds" format:"uint"` PurgeOnDelete bool `json:"purge_on_delete"` } type ProcessConfigLimits struct { CPU float64 `json:"cpu_usage" jsonschema:"minimum=0,maximum=100"` - Memory uint64 `json:"memory_mbytes" jsonschema:"minimum=0"` - WaitFor uint64 `json:"waitfor_seconds" jsonschema:"minimum=0"` + Memory uint64 `json:"memory_mbytes" jsonschema:"minimum=0" format:"uint64"` + WaitFor uint64 `json:"waitfor_seconds" jsonschema:"minimum=0" format:"uint64"` } // ProcessConfig represents the configuration of an ffmpeg process @@ -50,9 +50,9 @@ type ProcessConfig struct { Output []ProcessConfigIO `json:"output" validate:"required"` Options []string `json:"options"` Reconnect bool `json:"reconnect"` - ReconnectDelay uint64 `json:"reconnect_delay_seconds"` + ReconnectDelay uint64 `json:"reconnect_delay_seconds" format:"uint64"` Autostart bool `json:"autostart"` - StaleTimeout uint64 `json:"stale_timeout_seconds"` + StaleTimeout uint64 `json:"stale_timeout_seconds" format:"uint64"` Limits ProcessConfigLimits `json:"limits"` } @@ -188,7 +188,7 @@ func (cfg *ProcessConfig) Unmarshal(c *app.Config) { // ProcessReportHistoryEntry represents the logs of a run of a restream process type ProcessReportHistoryEntry struct { - CreatedAt int64 `json:"created_at"` + CreatedAt int64 `json:"created_at" format:"int64"` Prelude []string `json:"prelude"` Log [][2]string `json:"log"` } @@ -235,11 +235,11 @@ func (report *ProcessReport) Unmarshal(l *app.Log) { type ProcessState struct { Order string `json:"order" jsonschema:"enum=start,enum=stop"` State string `json:"exec" jsonschema:"enum=finished,enum=starting,enum=running,enum=finishing,enum=killed,enum=failed"` - Runtime int64 `json:"runtime_seconds" jsonschema:"minimum=0"` - Reconnect int64 `json:"reconnect_seconds"` + Runtime int64 `json:"runtime_seconds" jsonschema:"minimum=0" format:"int64"` + Reconnect int64 `json:"reconnect_seconds" format:"int64"` LastLog string `json:"last_logline"` Progress *Progress `json:"progress"` - Memory uint64 `json:"memory_bytes"` + Memory uint64 `json:"memory_bytes" format:"uint64"` CPU json.Number `json:"cpu_usage" swaggertype:"number" jsonschema:"type=number"` Command []string `json:"command"` } diff --git a/http/api/progress.go b/http/api/progress.go index ed575fc7..a402d55a 100644 --- a/http/api/progress.go +++ b/http/api/progress.go @@ -13,29 +13,29 @@ type ProgressIO struct { Address string `json:"address" jsonschema:"minLength=1"` // General - Index uint64 `json:"index"` - Stream uint64 `json:"stream"` + Index uint64 `json:"index" format:"uint64"` + Stream uint64 `json:"stream" format:"uint64"` Format string `json:"format"` Type string `json:"type"` Codec string `json:"codec"` Coder string `json:"coder"` - Frame uint64 `json:"frame"` + Frame uint64 `json:"frame" format:"uint64"` FPS json.Number `json:"fps" swaggertype:"number" jsonschema:"type=number"` - Packet uint64 `json:"packet"` + Packet uint64 `json:"packet" format:"uint64"` PPS json.Number `json:"pps" swaggertype:"number" jsonschema:"type=number"` - Size uint64 `json:"size_kb"` // kbytes + Size uint64 `json:"size_kb" format:"uint64"` // kbytes Bitrate json.Number `json:"bitrate_kbit" swaggertype:"number" jsonschema:"type=number"` // kbit/s // Video Pixfmt string `json:"pix_fmt,omitempty"` Quantizer json.Number `json:"q,omitempty" swaggertype:"number" jsonschema:"type=number"` - Width uint64 `json:"width,omitempty"` - Height uint64 `json:"height,omitempty"` + Width uint64 `json:"width,omitempty" format:"uint64"` + Height uint64 `json:"height,omitempty" format:"uint64"` // Audio - Sampling uint64 `json:"sampling_hz,omitempty"` + Sampling uint64 `json:"sampling_hz,omitempty" format:"uint64"` Layout string `json:"layout,omitempty"` - Channels uint64 `json:"channels,omitempty"` + Channels uint64 `json:"channels,omitempty" format:"uint64"` // avstream AVstream *AVstream `json:"avstream"` @@ -79,16 +79,16 @@ func (i *ProgressIO) Unmarshal(io *app.ProgressIO) { type Progress struct { Input []ProgressIO `json:"inputs"` Output []ProgressIO `json:"outputs"` - Frame uint64 `json:"frame"` - Packet uint64 `json:"packet"` + Frame uint64 `json:"frame" format:"uint64"` + Packet uint64 `json:"packet" format:"uint64"` FPS json.Number `json:"fps" swaggertype:"number" jsonschema:"type=number"` Quantizer json.Number `json:"q" swaggertype:"number" jsonschema:"type=number"` - Size uint64 `json:"size_kb"` // kbytes + Size uint64 `json:"size_kb" format:"uint64"` // kbytes Time json.Number `json:"time" swaggertype:"number" jsonschema:"type=number"` Bitrate json.Number `json:"bitrate_kbit" swaggertype:"number" jsonschema:"type=number"` // kbit/s Speed json.Number `json:"speed" swaggertype:"number" jsonschema:"type=number"` - Drop uint64 `json:"drop"` - Dup uint64 `json:"dup"` + Drop uint64 `json:"drop" format:"uint64"` + Dup uint64 `json:"dup" format:"uint64"` } // Unmarshal converts a restreamer Progress to a Progress in API representation diff --git a/http/api/session.go b/http/api/session.go index 8078531a..c616121f 100644 --- a/http/api/session.go +++ b/http/api/session.go @@ -8,9 +8,9 @@ import ( // SessionStats are the accumulated numbers for the session summary type SessionStats struct { - TotalSessions uint64 `json:"sessions"` - TotalRxBytes uint64 `json:"traffic_rx_mb"` - TotalTxBytes uint64 `json:"traffic_tx_mb"` + TotalSessions uint64 `json:"sessions" format:"uint64"` + TotalRxBytes uint64 `json:"traffic_rx_mb" format:"uint64"` + TotalTxBytes uint64 `json:"traffic_tx_mb" format:"uint64"` } // SessionPeers is for the grouping by peers in the summary @@ -24,12 +24,12 @@ type SessionPeers struct { type Session struct { ID string `json:"id"` Reference string `json:"reference"` - CreatedAt int64 `json:"created_at"` + CreatedAt int64 `json:"created_at" format:"int64"` Location string `json:"local"` Peer string `json:"remote"` Extra string `json:"extra"` - RxBytes uint64 `json:"bytes_rx"` - TxBytes uint64 `json:"bytes_tx"` + RxBytes uint64 `json:"bytes_rx" format:"uint64"` + TxBytes uint64 `json:"bytes_tx" format:"uint64"` RxBitrate json.Number `json:"bandwidth_rx_kbit" swaggertype:"number" jsonschema:"type=number"` // kbit/s TxBitrate json.Number `json:"bandwidth_tx_kbit" swaggertype:"number" jsonschema:"type=number"` // kbit/s } @@ -50,10 +50,10 @@ func (s *Session) Unmarshal(sess session.Session) { // SessionSummaryActive represents the currently active sessions type SessionSummaryActive struct { SessionList []Session `json:"list"` - Sessions uint64 `json:"sessions"` + Sessions uint64 `json:"sessions" format:"uint64"` RxBitrate json.Number `json:"bandwidth_rx_mbit" swaggertype:"number" jsonschema:"type=number"` // mbit/s TxBitrate json.Number `json:"bandwidth_tx_mbit" swaggertype:"number" jsonschema:"type=number"` // mbit/s - MaxSessions uint64 `json:"max_sessions"` + MaxSessions uint64 `json:"max_sessions" format:"uint64"` MaxRxBitrate json.Number `json:"max_bandwidth_rx_mbit" swaggertype:"number" jsonschema:"type=number"` // mbit/s MaxTxBitrate json.Number `json:"max_bandwidth_tx_mbit" swaggertype:"number" jsonschema:"type=number"` // mbit/s } diff --git a/http/api/srt.go b/http/api/srt.go index bb31498e..e41b2514 100644 --- a/http/api/srt.go +++ b/http/api/srt.go @@ -8,60 +8,60 @@ import ( // SRTStatistics represents the statistics of a SRT connection type SRTStatistics struct { - MsTimeStamp uint64 `json:"timestamp_ms"` // The time elapsed, in milliseconds, since the SRT socket has been created + MsTimeStamp uint64 `json:"timestamp_ms" format:"uint64"` // The time elapsed, in milliseconds, since the SRT socket has been created // Accumulated - PktSent uint64 `json:"sent_pkt"` // The total number of sent DATA packets, including retransmitted packets - PktRecv uint64 `json:"recv_pkt"` // The total number of received DATA packets, including retransmitted packets - PktSentUnique uint64 `json:"sent_unique_pkt"` // The total number of unique DATA packets sent by the SRT sender - PktRecvUnique uint64 `json:"recv_unique_pkt"` // The total number of unique original, retransmitted or recovered by the packet filter DATA packets received in time, decrypted without errors and, as a result, scheduled for delivery to the upstream application by the SRT receiver. - PktSndLoss uint64 `json:"send_loss_pkt"` // The total number of data packets considered or reported as lost at the sender side. Does not correspond to the packets detected as lost at the receiver side. - PktRcvLoss uint64 `json:"recv_loss_pkt"` // The total number of SRT DATA packets detected as presently missing (either reordered or lost) at the receiver side - PktRetrans uint64 `json:"sent_retrans_pkt"` // The total number of retransmitted packets sent by the SRT sender - PktRcvRetrans uint64 `json:"recv_retran_pkts"` // The total number of retransmitted packets registered at the receiver side - PktSentACK uint64 `json:"sent_ack_pkt"` // The total number of sent ACK (Acknowledgement) control packets - PktRecvACK uint64 `json:"recv_ack_pkt"` // The total number of received ACK (Acknowledgement) control packets - PktSentNAK uint64 `json:"sent_nak_pkt"` // The total number of sent NAK (Negative Acknowledgement) control packets - PktRecvNAK uint64 `json:"recv_nak_pkt"` // The total number of received NAK (Negative Acknowledgement) control packets - PktSentKM uint64 `json:"send_km_pkt"` // The total number of sent KM (Key Material) control packets - PktRecvKM uint64 `json:"recv_km_pkt"` // The total number of received KM (Key Material) control packets - UsSndDuration uint64 `json:"send_duration_us"` // The total accumulated time in microseconds, during which the SRT sender has some data to transmit, including packets that have been sent, but not yet acknowledged - PktSndDrop uint64 `json:"send_drop_pkt"` // The total number of dropped by the SRT sender DATA packets that have no chance to be delivered in time - PktRcvDrop uint64 `json:"recv_drop_pkt"` // The total number of dropped by the SRT receiver and, as a result, not delivered to the upstream application DATA packets - PktRcvUndecrypt uint64 `json:"recv_undecrypt_pkt"` // The total number of packets that failed to be decrypted at the receiver side + PktSent uint64 `json:"sent_pkt" format:"uint64"` // The total number of sent DATA packets, including retransmitted packets + PktRecv uint64 `json:"recv_pkt" format:"uint64"` // The total number of received DATA packets, including retransmitted packets + PktSentUnique uint64 `json:"sent_unique_pkt" format:"uint64"` // The total number of unique DATA packets sent by the SRT sender + PktRecvUnique uint64 `json:"recv_unique_pkt" format:"uint64"` // The total number of unique original, retransmitted or recovered by the packet filter DATA packets received in time, decrypted without errors and, as a result, scheduled for delivery to the upstream application by the SRT receiver. + PktSndLoss uint64 `json:"send_loss_pkt" format:"uint64"` // The total number of data packets considered or reported as lost at the sender side. Does not correspond to the packets detected as lost at the receiver side. + PktRcvLoss uint64 `json:"recv_loss_pkt" format:"uint64"` // The total number of SRT DATA packets detected as presently missing (either reordered or lost) at the receiver side + PktRetrans uint64 `json:"sent_retrans_pkt" format:"uint64"` // The total number of retransmitted packets sent by the SRT sender + PktRcvRetrans uint64 `json:"recv_retran_pkts" format:"uint64"` // The total number of retransmitted packets registered at the receiver side + PktSentACK uint64 `json:"sent_ack_pkt" format:"uint64"` // The total number of sent ACK (Acknowledgement) control packets + PktRecvACK uint64 `json:"recv_ack_pkt" format:"uint64"` // The total number of received ACK (Acknowledgement) control packets + PktSentNAK uint64 `json:"sent_nak_pkt" format:"uint64"` // The total number of sent NAK (Negative Acknowledgement) control packets + PktRecvNAK uint64 `json:"recv_nak_pkt" format:"uint64"` // The total number of received NAK (Negative Acknowledgement) control packets + PktSentKM uint64 `json:"send_km_pkt" format:"uint64"` // The total number of sent KM (Key Material) control packets + PktRecvKM uint64 `json:"recv_km_pkt" format:"uint64"` // The total number of received KM (Key Material) control packets + UsSndDuration uint64 `json:"send_duration_us" format:"uint64"` // The total accumulated time in microseconds, during which the SRT sender has some data to transmit, including packets that have been sent, but not yet acknowledged + PktSndDrop uint64 `json:"send_drop_pkt" format:"uint64"` // The total number of dropped by the SRT sender DATA packets that have no chance to be delivered in time + PktRcvDrop uint64 `json:"recv_drop_pkt" format:"uint64"` // The total number of dropped by the SRT receiver and, as a result, not delivered to the upstream application DATA packets + PktRcvUndecrypt uint64 `json:"recv_undecrypt_pkt" format:"uint64"` // The total number of packets that failed to be decrypted at the receiver side - ByteSent uint64 `json:"sent_bytes"` // Same as pktSent, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) - ByteRecv uint64 `json:"recv_bytes"` // Same as pktRecv, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) - ByteSentUnique uint64 `json:"sent_unique_bytes"` // Same as pktSentUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) - ByteRecvUnique uint64 `json:"recv_unique_bytes"` // Same as pktRecvUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) - ByteRcvLoss uint64 `json:"recv_loss_bytes"` // Same as pktRcvLoss, but expressed in bytes, including payload and all the headers (IP, TCP, SRT), bytes for the presently missing (either reordered or lost) packets' payloads are estimated based on the average packet size - ByteRetrans uint64 `json:"sent_retrans_bytes"` // Same as pktRetrans, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) - ByteSndDrop uint64 `json:"send_drop_bytes"` // Same as pktSndDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) - ByteRcvDrop uint64 `json:"recv_drop_bytes"` // Same as pktRcvDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) - ByteRcvUndecrypt uint64 `json:"recv_undecrypt_bytes"` // Same as pktRcvUndecrypt, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + ByteSent uint64 `json:"sent_bytes" format:"uint64"` // Same as pktSent, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + ByteRecv uint64 `json:"recv_bytes" format:"uint64"` // Same as pktRecv, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + ByteSentUnique uint64 `json:"sent_unique_bytes" format:"uint64"` // Same as pktSentUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + ByteRecvUnique uint64 `json:"recv_unique_bytes" format:"uint64"` // Same as pktRecvUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + ByteRcvLoss uint64 `json:"recv_loss_bytes" format:"uint64"` // Same as pktRcvLoss, but expressed in bytes, including payload and all the headers (IP, TCP, SRT), bytes for the presently missing (either reordered or lost) packets' payloads are estimated based on the average packet size + ByteRetrans uint64 `json:"sent_retrans_bytes" format:"uint64"` // Same as pktRetrans, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + ByteSndDrop uint64 `json:"send_drop_bytes" format:"uint64"` // Same as pktSndDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + ByteRcvDrop uint64 `json:"recv_drop_bytes" format:"uint64"` // Same as pktRcvDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) + ByteRcvUndecrypt uint64 `json:"recv_undecrypt_bytes" format:"uint64"` // Same as pktRcvUndecrypt, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) // Instantaneous - UsPktSndPeriod float64 `json:"pkt_send_period_us"` // Current minimum time interval between which consecutive packets are sent, in microseconds - PktFlowWindow uint64 `json:"flow_window_pkt"` // The maximum number of packets that can be "in flight" - PktFlightSize uint64 `json:"flight_size_pkt"` // The number of packets in flight - MsRTT float64 `json:"rtt_ms"` // Smoothed round-trip time (SRTT), an exponentially-weighted moving average (EWMA) of an endpoint's RTT samples, in milliseconds - MbpsBandwidth float64 `json:"bandwidth_mbit"` // Estimated bandwidth of the network link, in Mbps - ByteAvailSndBuf uint64 `json:"avail_send_buf_bytes"` // The available space in the sender's buffer, in bytes - ByteAvailRcvBuf uint64 `json:"avail_recv_buf_bytes"` // The available space in the receiver's buffer, in bytes - MbpsMaxBW float64 `json:"max_bandwidth_mbit"` // Transmission bandwidth limit, in Mbps - ByteMSS uint64 `json:"mss_bytes"` // Maximum Segment Size (MSS), in bytes - PktSndBuf uint64 `json:"send_buf_pkt"` // The number of packets in the sender's buffer that are already scheduled for sending or even possibly sent, but not yet acknowledged - ByteSndBuf uint64 `json:"send_buf_bytes"` // Instantaneous (current) value of pktSndBuf, but expressed in bytes, including payload and all headers (IP, TCP, SRT) - MsSndBuf uint64 `json:"send_buf_ms"` // The timespan (msec) of packets in the sender's buffer (unacknowledged packets) - MsSndTsbPdDelay uint64 `json:"send_tsbpd_delay_ms"` // Timestamp-based Packet Delivery Delay value of the peer - PktRcvBuf uint64 `json:"recv_buf_pkt"` // The number of acknowledged packets in receiver's buffer - ByteRcvBuf uint64 `json:"recv_buf_bytes"` // Instantaneous (current) value of pktRcvBuf, expressed in bytes, including payload and all headers (IP, TCP, SRT) - MsRcvBuf uint64 `json:"recv_buf_ms"` // The timespan (msec) of acknowledged packets in the receiver's buffer - MsRcvTsbPdDelay uint64 `json:"recv_tsbpd_delay_ms"` // Timestamp-based Packet Delivery Delay value set on the socket via SRTO_RCVLATENCY or SRTO_LATENCY - PktReorderTolerance uint64 `json:"reorder_tolerance_pkt"` // Instant value of the packet reorder tolerance - PktRcvAvgBelatedTime uint64 `json:"pkt_recv_avg_belated_time_ms"` // Accumulated difference between the current time and the time-to-play of a packet that is received late + UsPktSndPeriod float64 `json:"pkt_send_period_us"` // Current minimum time interval between which consecutive packets are sent, in microseconds + PktFlowWindow uint64 `json:"flow_window_pkt" format:"uint64"` // The maximum number of packets that can be "in flight" + PktFlightSize uint64 `json:"flight_size_pkt" format:"uint64"` // The number of packets in flight + MsRTT float64 `json:"rtt_ms"` // Smoothed round-trip time (SRTT), an exponentially-weighted moving average (EWMA) of an endpoint's RTT samples, in milliseconds + MbpsBandwidth float64 `json:"bandwidth_mbit"` // Estimated bandwidth of the network link, in Mbps + ByteAvailSndBuf uint64 `json:"avail_send_buf_bytes" format:"uint64"` // The available space in the sender's buffer, in bytes + ByteAvailRcvBuf uint64 `json:"avail_recv_buf_bytes" format:"uint64"` // The available space in the receiver's buffer, in bytes + MbpsMaxBW float64 `json:"max_bandwidth_mbit"` // Transmission bandwidth limit, in Mbps + ByteMSS uint64 `json:"mss_bytes" format:"uint64"` // Maximum Segment Size (MSS), in bytes + PktSndBuf uint64 `json:"send_buf_pkt" format:"uint64"` // The number of packets in the sender's buffer that are already scheduled for sending or even possibly sent, but not yet acknowledged + ByteSndBuf uint64 `json:"send_buf_bytes" format:"uint64"` // Instantaneous (current) value of pktSndBuf, but expressed in bytes, including payload and all headers (IP, TCP, SRT) + MsSndBuf uint64 `json:"send_buf_ms" format:"uint64"` // The timespan (msec) of packets in the sender's buffer (unacknowledged packets) + MsSndTsbPdDelay uint64 `json:"send_tsbpd_delay_ms" format:"uint64"` // Timestamp-based Packet Delivery Delay value of the peer + PktRcvBuf uint64 `json:"recv_buf_pkt" format:"uint64"` // The number of acknowledged packets in receiver's buffer + ByteRcvBuf uint64 `json:"recv_buf_bytes" format:"uint64"` // Instantaneous (current) value of pktRcvBuf, expressed in bytes, including payload and all headers (IP, TCP, SRT) + MsRcvBuf uint64 `json:"recv_buf_ms" format:"uint64"` // The timespan (msec) of acknowledged packets in the receiver's buffer + MsRcvTsbPdDelay uint64 `json:"recv_tsbpd_delay_ms" format:"uint64"` // Timestamp-based Packet Delivery Delay value set on the socket via SRTO_RCVLATENCY or SRTO_LATENCY + PktReorderTolerance uint64 `json:"reorder_tolerance_pkt" format:"uint64"` // Instant value of the packet reorder tolerance + PktRcvAvgBelatedTime uint64 `json:"pkt_recv_avg_belated_time_ms" format:"uint64"` // Accumulated difference between the current time and the time-to-play of a packet that is received late } // Unmarshal converts the SRT statistics into API representation @@ -119,7 +119,7 @@ func (s *SRTStatistics) Unmarshal(ss *gosrt.Statistics) { } type SRTLog struct { - Timestamp int64 `json:"ts"` + Timestamp int64 `json:"ts" format:"int64"` Message []string `json:"msg"` } diff --git a/http/api/widget.go b/http/api/widget.go index d0f35e6c..5d91bda6 100644 --- a/http/api/widget.go +++ b/http/api/widget.go @@ -1,7 +1,7 @@ package api type WidgetProcess struct { - CurrentSessions uint64 `json:"current_sessions"` - TotalSessions uint64 `json:"total_sessions"` + CurrentSessions uint64 `json:"current_sessions" format:"uint64"` + TotalSessions uint64 `json:"total_sessions" format:"uint64"` Uptime int64 `json:"uptime"` }