diff --git a/doc.go b/doc.go index 35f527c0..a30e4dc2 100644 --- a/doc.go +++ b/doc.go @@ -21,6 +21,7 @@ // // Schemes: // http +// https // Host: localhost // BasePath: /v2 // Version: 2.8 diff --git a/embedded_spec.go b/embedded_spec.go index 99332b97..ac8cad12 100644 --- a/embedded_spec.go +++ b/embedded_spec.go @@ -40,7 +40,8 @@ func init() { "application/json" ], "schemes": [ - "http" + "http", + "https" ], "swagger": "2.0", "info": { @@ -16950,21 +16951,25 @@ func init() { "properties": { "address": { "type": "string", - "pattern": "^[^\\s]+$" + "pattern": "^[^\\s]+$", + "example": "127.0.0.1" }, "port": { "type": "integer", "maximum": 65535, "minimum": 1, - "x-nullable": true + "x-nullable": true, + "example": 80 }, "port-range-end": { "type": "integer", "maximum": 65535, "minimum": 1, - "x-nullable": true + "x-nullable": true, + "example": 81 } - } + }, + "additionalProperties": false }, "bind_params": { "type": "object", @@ -17125,10 +17130,12 @@ func init() { "user", "operator", "admin" - ] + ], + "example": "user" }, "maxconn": { - "type": "integer" + "type": "integer", + "example": 1234 }, "mode": { "type": "string" @@ -17142,10 +17149,12 @@ func init() { "x-nullable": false }, "namespace": { - "type": "string" + "type": "string", + "example": "app" }, "nice": { - "type": "integer" + "type": "integer", + "example": 1 }, "no_ca_names": { "type": "boolean", @@ -17217,6 +17226,16 @@ func init() { "type": "string", "x-display-name": "Protocol name" }, + "quic-cc-algo": { + "type": "string", + "enum": [ + "cubic", + "newreno" + ] + }, + "quic-force-retry": { + "type": "boolean" + }, "severity_output": { "type": "string", "enum": [ @@ -17224,7 +17243,8 @@ func init() { "number", "string" ], - "x-display-name": "Format" + "x-display-name": "Format", + "example": "none" }, "ssl": { "type": "boolean" @@ -17312,15 +17332,11 @@ func init() { "ssl": { "value": "enabled" } - } + }, + "example": "none" } }, - "additionalProperties": false, - "example": { - "address": "127.0.0.1", - "name": "http", - "port": 80 - } + "additionalProperties": false }, "binds": { "description": "HAProxy frontend binds array (corresponds to bind directives)", @@ -18713,8 +18729,7 @@ func init() { "description": "Declares a FastCGI application", "type": "string", "pattern": "^[^\\s]+$", - "x-nullable": false, - "readOnly": true + "x-nullable": false }, "pass_headers": { "type": "array", @@ -19606,6 +19621,10 @@ func init() { "pattern": "^[^\\s]+$", "x-display-name": "Chroot" }, + "cluster_secret": { + "type": "string", + "x-display-name": "Cluster Secret" + }, "cpu_maps": { "type": "array", "items": { @@ -19909,6 +19928,10 @@ func init() { "type": "integer", "x-display-name": "Number of Threads" }, + "no-quic": { + "type": "boolean", + "x-display-name": "Disable the use of the QUIC protocol" + }, "node": { "type": "string" }, @@ -20369,6 +20392,39 @@ func init() { "type": "integer", "x-display-name": "Max Used Low FD Ratio" }, + "quic_frontend_conn_tc_buffers_limit": { + "type": "integer", + "x-display-name": "QUIC Frontend Connection TX Buffer Limit", + "x-nullable": true + }, + "quic_frontend_max_idle_timeout": { + "type": "integer", + "x-display-name": "QUIC Frontend Max Idle Timeout", + "x-nullable": true + }, + "quic_frontend_max_streams_bidi": { + "type": "integer", + "x-display-name": "QUIC Max Number of Bidirectional Streams", + "x-nullable": true + }, + "quic_max_frame_loss": { + "type": "integer", + "x-display-name": "QUIC Max Limit for Frame Loss", + "x-nullable": true + }, + "quic_retry_threshold": { + "type": "integer", + "x-display-name": "QUIC Retry Threshold", + "x-nullable": true + }, + "quic_socket_owner": { + "type": "string", + "enum": [ + "listener", + "connection" + ], + "x-display-name": "QUIC Socket Owner" + }, "rcvbuf_client": { "type": "integer", "x-display-name": "Receive Buffer Client Size", @@ -21282,8 +21338,6 @@ func init() { }, "additionalProperties": false, "example": { - "hdr_format": "%T", - "hdr_name": "X-Haproxy-Current-Date", "index": 0, "status": 425, "type": "status" @@ -24656,8 +24710,7 @@ func init() { "name": { "type": "string", "pattern": "^[A-Za-z0-9-_.:]+$", - "x-nullable": false, - "readOnly": true + "x-nullable": false }, "start-on-reload": { "description": "HAProxy stops and recreates child programs at reload.", @@ -25472,10 +25525,8 @@ func init() { "additionalProperties": false, "example": { "address": "10.1.1.1", - "check": "enabled", "name": "www", - "port": 8080, - "weight": 80 + "port": 8080 } }, "server_params": { @@ -26294,14 +26345,12 @@ func init() { { "address": "127.0.1.1", "name": "www_server", - "port": 4567, - "weight": 30 + "port": 4567 }, { "address": "127.0.1.2", "name": "www_server_new", - "port": 4567, - "weight": 70 + "port": 4567 } ], "use_as": "default" @@ -26310,18 +26359,6 @@ func init() { "name": "test_site", "service": { "http_connection_mode": "httpclose", - "listeners": [ - { - "address": "127.0.0.1", - "name": "test_listener", - "port": 80 - }, - { - "address": "127.0.0.1", - "name": "test_listener_2", - "port": 8080 - } - ], "maxconn": 2000, "mode": "http" } @@ -28829,7 +28866,8 @@ func init() { "application/json" ], "schemes": [ - "http" + "http", + "https" ], "swagger": "2.0", "info": { @@ -52782,6 +52820,39 @@ func init() { "type": "integer", "x-display-name": "Max Used Low FD Ratio" }, + "quic_frontend_conn_tc_buffers_limit": { + "type": "integer", + "x-display-name": "QUIC Frontend Connection TX Buffer Limit", + "x-nullable": true + }, + "quic_frontend_max_idle_timeout": { + "type": "integer", + "x-display-name": "QUIC Frontend Max Idle Timeout", + "x-nullable": true + }, + "quic_frontend_max_streams_bidi": { + "type": "integer", + "x-display-name": "QUIC Max Number of Bidirectional Streams", + "x-nullable": true + }, + "quic_max_frame_loss": { + "type": "integer", + "x-display-name": "QUIC Max Limit for Frame Loss", + "x-nullable": true + }, + "quic_retry_threshold": { + "type": "integer", + "x-display-name": "QUIC Retry Threshold", + "x-nullable": true + }, + "quic_socket_owner": { + "type": "string", + "enum": [ + "listener", + "connection" + ], + "x-display-name": "QUIC Socket Owner" + }, "rcvbuf_client": { "type": "integer", "x-display-name": "Receive Buffer Client Size", @@ -54302,21 +54373,25 @@ func init() { "properties": { "address": { "type": "string", - "pattern": "^[^\\s]+$" + "pattern": "^[^\\s]+$", + "example": "127.0.0.1" }, "port": { "type": "integer", "maximum": 65535, "minimum": 1, - "x-nullable": true + "x-nullable": true, + "example": 80 }, "port-range-end": { "type": "integer", "maximum": 65535, "minimum": 1, - "x-nullable": true + "x-nullable": true, + "example": 81 } - } + }, + "additionalProperties": false }, "bind_params": { "type": "object", @@ -54477,10 +54552,12 @@ func init() { "user", "operator", "admin" - ] + ], + "example": "user" }, "maxconn": { - "type": "integer" + "type": "integer", + "example": 1234 }, "mode": { "type": "string" @@ -54494,10 +54571,12 @@ func init() { "x-nullable": false }, "namespace": { - "type": "string" + "type": "string", + "example": "app" }, "nice": { - "type": "integer" + "type": "integer", + "example": 1 }, "no_ca_names": { "type": "boolean", @@ -54569,6 +54648,16 @@ func init() { "type": "string", "x-display-name": "Protocol name" }, + "quic-cc-algo": { + "type": "string", + "enum": [ + "cubic", + "newreno" + ] + }, + "quic-force-retry": { + "type": "boolean" + }, "severity_output": { "type": "string", "enum": [ @@ -54576,7 +54665,8 @@ func init() { "number", "string" ], - "x-display-name": "Format" + "x-display-name": "Format", + "example": "none" }, "ssl": { "type": "boolean" @@ -54664,15 +54754,11 @@ func init() { "ssl": { "value": "enabled" } - } + }, + "example": "none" } }, - "additionalProperties": false, - "example": { - "address": "127.0.0.1", - "name": "http", - "port": 80 - } + "additionalProperties": false }, "binds": { "description": "HAProxy frontend binds array (corresponds to bind directives)", @@ -56025,8 +56111,7 @@ func init() { "description": "Declares a FastCGI application", "type": "string", "pattern": "^[^\\s]+$", - "x-nullable": false, - "readOnly": true + "x-nullable": false }, "pass_headers": { "type": "array", @@ -56919,6 +57004,10 @@ func init() { "pattern": "^[^\\s]+$", "x-display-name": "Chroot" }, + "cluster_secret": { + "type": "string", + "x-display-name": "Cluster Secret" + }, "cpu_maps": { "type": "array", "items": { @@ -57168,6 +57257,10 @@ func init() { "type": "integer", "x-display-name": "Number of Threads" }, + "no-quic": { + "type": "boolean", + "x-display-name": "Disable the use of the QUIC protocol" + }, "node": { "type": "string" }, @@ -57524,6 +57617,39 @@ func init() { "type": "integer", "x-display-name": "Max Used Low FD Ratio" }, + "quic_frontend_conn_tc_buffers_limit": { + "type": "integer", + "x-display-name": "QUIC Frontend Connection TX Buffer Limit", + "x-nullable": true + }, + "quic_frontend_max_idle_timeout": { + "type": "integer", + "x-display-name": "QUIC Frontend Max Idle Timeout", + "x-nullable": true + }, + "quic_frontend_max_streams_bidi": { + "type": "integer", + "x-display-name": "QUIC Max Number of Bidirectional Streams", + "x-nullable": true + }, + "quic_max_frame_loss": { + "type": "integer", + "x-display-name": "QUIC Max Limit for Frame Loss", + "x-nullable": true + }, + "quic_retry_threshold": { + "type": "integer", + "x-display-name": "QUIC Retry Threshold", + "x-nullable": true + }, + "quic_socket_owner": { + "type": "string", + "enum": [ + "listener", + "connection" + ], + "x-display-name": "QUIC Socket Owner" + }, "rcvbuf_client": { "type": "integer", "x-display-name": "Receive Buffer Client Size", @@ -58437,8 +58563,6 @@ func init() { }, "additionalProperties": false, "example": { - "hdr_format": "%T", - "hdr_name": "X-Haproxy-Current-Date", "index": 0, "status": 425, "type": "status" @@ -61812,8 +61936,7 @@ func init() { "name": { "type": "string", "pattern": "^[A-Za-z0-9-_.:]+$", - "x-nullable": false, - "readOnly": true + "x-nullable": false }, "start-on-reload": { "description": "HAProxy stops and recreates child programs at reload.", @@ -62628,10 +62751,8 @@ func init() { "additionalProperties": false, "example": { "address": "10.1.1.1", - "check": "enabled", "name": "www", - "port": 8080, - "weight": 80 + "port": 8080 } }, "server_params": { @@ -63386,14 +63507,12 @@ func init() { { "address": "127.0.1.1", "name": "www_server", - "port": 4567, - "weight": 30 + "port": 4567 }, { "address": "127.0.1.2", "name": "www_server_new", - "port": 4567, - "weight": 70 + "port": 4567 } ], "use_as": "default" @@ -63402,18 +63521,6 @@ func init() { "name": "test_site", "service": { "http_connection_mode": "httpclose", - "listeners": [ - { - "address": "127.0.0.1", - "name": "test_listener", - "port": 80 - }, - { - "address": "127.0.0.1", - "name": "test_listener_2", - "port": 8080 - } - ], "maxconn": 2000, "mode": "http" } diff --git a/go.mod b/go.mod index ab60c204..9e6ef09d 100644 --- a/go.mod +++ b/go.mod @@ -19,11 +19,11 @@ require ( github.com/go-openapi/spec v0.20.7 github.com/go-openapi/strfmt v0.21.3 github.com/go-openapi/swag v0.22.3 - github.com/go-openapi/validate v0.22.0 + github.com/go-openapi/validate v0.22.1 github.com/google/renameio v1.0.1 github.com/google/uuid v1.3.0 - github.com/haproxytech/client-native/v4 v4.0.1-0.20221207130035-88da8ddc27e8 - github.com/haproxytech/config-parser/v4 v4.1.0 + github.com/haproxytech/client-native/v4 v4.0.1-0.20230308121936-d0e45bd84b92 + github.com/haproxytech/config-parser/v4 v4.1.1-0.20230308114929-b7f6fa2190e1 github.com/hashicorp/hcl v1.0.0 github.com/jessevdk/go-flags v1.5.0 github.com/json-iterator/go v1.1.12 diff --git a/go.sum b/go.sum index b4772433..bc5f502f 100644 --- a/go.sum +++ b/go.sum @@ -84,8 +84,8 @@ github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/ github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-openapi/validate v0.22.0 h1:b0QecH6VslW/TxtpKgzpO1SNG7GU2FsaqKdP1E2T50Y= -github.com/go-openapi/validate v0.22.0/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg= +github.com/go-openapi/validate v0.22.1 h1:G+c2ub6q47kfX1sOBLwIQwzBVt8qmOAARyo/9Fqs9NU= +github.com/go-openapi/validate v0.22.1/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= @@ -126,10 +126,10 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/haproxytech/client-native/v4 v4.0.1-0.20221207130035-88da8ddc27e8 h1:EN68tDYmuRSkanIoF9rRaHHPz9OYZkajcNDfOTV8zss= -github.com/haproxytech/client-native/v4 v4.0.1-0.20221207130035-88da8ddc27e8/go.mod h1:QSTWyKnloFZJQG2tw6FLVCzONxmUOYMat17Cb4utgD0= -github.com/haproxytech/config-parser/v4 v4.1.0 h1:P1gu/UjiWo5Kg+4ZW/mHd657Uw7utoi8QBW8WhUWB3w= -github.com/haproxytech/config-parser/v4 v4.1.0/go.mod h1:pZHV7TLt1PgY8ouMX2ZNQoZHe20LGybbqkNN4MKjGZ0= +github.com/haproxytech/client-native/v4 v4.0.1-0.20230308121936-d0e45bd84b92 h1:9MGr/OZ48UPTeKctP1YY0S6YmprRzbb32k0g+KawRQY= +github.com/haproxytech/client-native/v4 v4.0.1-0.20230308121936-d0e45bd84b92/go.mod h1:C04idRRchv4kPI1Bh5EkOn+9UXoS7QtMWQVUr7APNhg= +github.com/haproxytech/config-parser/v4 v4.1.1-0.20230308114929-b7f6fa2190e1 h1:qnHJR/8+bSdxTK7IlE7xWXNTJoCSqP7dy79s9iNLxgA= +github.com/haproxytech/config-parser/v4 v4.1.1-0.20230308114929-b7f6fa2190e1/go.mod h1:ATW/is/Ni9HK2F5Y1IhS5cutgy/w/abVgwRLaoqlcmo= github.com/haproxytech/go-logger v1.1.0 h1:HgGtYaI1ApkvbQdsm7f9AzQQoxTB7w37criTflh7IQE= github.com/haproxytech/go-logger v1.1.0/go.mod h1:OekUd8HCb7ubxMplzHUPBTHNxZmddOWfOjWclZsqIeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -157,7 +157,7 @@ github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= diff --git a/server.go b/server.go index 19416f2d..21d19c3b 100644 --- a/server.go +++ b/server.go @@ -53,6 +53,7 @@ var defaultSchemes []string func init() { defaultSchemes = []string{ schemeHTTP, + schemeHTTPS, } }