diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..54a0cd3 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,7 @@ +# don't look above this dir +root = true + +[**.{yaml,yml}] +indent_style = space +indent_style = 2 +trim_trailing_whitespace = true diff --git a/.github/workflows/compare_build.yml b/.github/workflows/compare_build.yml new file mode 100644 index 0000000..8d775ef --- /dev/null +++ b/.github/workflows/compare_build.yml @@ -0,0 +1,18 @@ +--- +name: Compare build +# yamllint disable-line rule:truthy +on: [push, pull_request] +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Compare + run: | + cd build + ./build -file ../haproxy-spec.yaml > haproxy_spec_to_compare.yaml + diff -u haproxy_spec.yaml haproxy_spec_to_compare.yaml + - name: YAML script validation + run: | + chmod +x ./scripts/lint-yaml.sh + ./scripts/lint-yaml.sh diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..1bc0d6c --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,14 @@ +--- +name: Yaml Lint +# yamllint disable-line rule:truthy +on: [push, pull_request] +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: yaml-lint + uses: ibiqlik/action-yamllint@master + with: + file_or_dir: . + config_file: .yamllint.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..202721a --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,37 @@ +--- +stages: + - lint +compare build: + stage: lint + image: + # I just like pinning things, this version is latest, not special in any way + name: alpine:3.10.3 + entrypoint: [""] + tags: + - go + script: + # try building it and compare if resulting file is equal to what is commited. + - cd build + - ./build -file ../haproxy-spec.yaml > haproxy_spec_to_compare.yaml + - diff -u haproxy_spec_to_compare.yaml haproxy_spec.yaml +yamllint: + stage: lint + image: + name: cytopia/yamllint:latest + entrypoint: [""] + tags: + - go + script: + # to test locally, run: docker run --rm -v $(pwd):/data cytopia/yamllint . + - /bin/sh -c "yamllint -f colored ." + - chmod +x ./scripts/lint-yaml.sh + - /bin/sh -c ./scripts/lint-yaml.sh +lint-commit-msg: + stage: lint + image: + name: haproxytech/check-commit:latest + entrypoint: [""] + tags: + - go + script: + - go run /check.go diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 0000000..cb99c69 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,14 @@ +--- +extends: default + +ignore: | + build/ + +rules: + line-length: disable + trailing-spaces: + level: warning + new-line-at-end-of-file: + level: warning + empty-lines: + level: warning diff --git a/README.md b/README.md index 96ccb77..d4a734f 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,43 @@ # ![HAProxy](assets/images/haproxy-weblogo-210x49.png "HAProxy") +
+
+ +:warning: This project has been merged with [client-native](https://github.com/haproxytech/client-native) project. + +
+
+
+
+
+
+
+
+
+
+
+
+ ## HAProxy Data Plane API Specification This is the [OpenAPI 2.0 (fka Swagger)](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md) specification for the [HAProxy Data Plane API project](https://github.com/haproxytech/dataplaneapi) -## Contributing +## Contributing -When contributing change files located it paths/ and models/ directories and the haproxy-spec.yaml, and then build the resulting one-file spec using the build binary in build directory: +When contributing, change files located in paths/ and models/ directories and the haproxy-spec.yaml, and then build the resulting one-file spec `build/haproxy_spec.yaml`. -``` +On linux, use the `build` binary: + +```bash +cd build ./build -file ../haproxy-spec.yaml > haproxy_spec.yaml ``` +On MacOS, you will need golang installed: + +```bash +cd build +go run build.go -file ../haproxy-spec.yaml > haproxy_spec.yaml +``` + For commit messages and general style please follow the haproxy project's [CONTRIBUTING guide](https://github.com/haproxy/haproxy/blob/master/CONTRIBUTING) and use that where applicable. diff --git a/build/go.mod b/build/go.mod index 29e7275..e3af0b2 100644 --- a/build/go.mod +++ b/build/go.mod @@ -2,4 +2,4 @@ module github.com/haproxytech/dataplaneapi-specification/build go 1.12 -require gopkg.in/yaml.v2 v2.2.2 +require gopkg.in/yaml.v2 v2.2.8 diff --git a/build/go.sum b/build/go.sum index bd555a3..ba2a066 100644 --- a/build/go.sum +++ b/build/go.sum @@ -1,3 +1,5 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/build/haproxy_spec.yaml b/build/haproxy_spec.yaml index 9e051f6..9f64df1 100644 --- a/build/haproxy_spec.yaml +++ b/build/haproxy_spec.yaml @@ -16,10 +16,11 @@ externalDocs: definitions: site: additionalProperties: false - description: "Site configuration. Sites are considered as one service and all farms - connected to that service.\nFarms are connected to service using use-backend and - default_backend directives. Sites let you\nconfigure simple HAProxy configurations, - for more advanced options use /haproxy/configuration \nendpoints.\n" + description: | + Site configuration. Sites are considered as one service and all farms connected to that service. + Farms are connected to service using use-backend and default_backend directives. Sites let you + configure simple HAProxy configurations, for more advanced options use /haproxy/configuration + endpoints. example: farms: - balance: @@ -139,7 +140,7 @@ definitions: description: | Sites array. Sites are considered as one service and all farms connected to that service. Farms are connected to service using use-backend and default_backend directives. Sites let you - configure simple HAProxy configurations, for more advanced options use /haproxy/configuration + configure simple HAProxy configurations, for more advanced options use /haproxy/configuration endpoints. type: array items: @@ -148,6 +149,10 @@ definitions: additionalProperties: false description: HAProxy global configuration properties: + chroot: + pattern: ^[^\s]+$ + type: string + x-display-name: Chroot cpu_maps: items: properties: @@ -173,6 +178,35 @@ definitions: external_check: type: boolean x-display-name: External Check + group: + pattern: ^[^\s]+$ + type: string + x-display-name: Group + log_send_hostname: + properties: + enabled: + enum: + - enabled + - disabled + type: string + param: + pattern: ^[^\s]+$ + type: string + required: + - enabled + type: object + x-display-name: Log Send Hostname + lua_loads: + items: + properties: + file: + pattern: ^[^\s]+$ + type: string + required: + - file + type: object + x-go-name: LuaLoad + type: array master-worker: type: boolean x-display-name: Master Worker Mode @@ -219,21 +253,48 @@ definitions: ssl_default_bind_ciphers: type: string x-display-name: SSL Default Bind Ciphers + ssl_default_bind_ciphersuites: + type: string + x-display-name: SSL Default Bind Ciphersuites ssl_default_bind_options: type: string x-display-name: SSL Default Bind Options + ssl_default_server_ciphers: + type: string + x-display-name: SSL Default Server Ciphers + ssl_default_server_ciphersuites: + type: string + x-display-name: SSL Default Server Ciphersuites + ssl_default_server_options: + type: string + x-display-name: SSL Default Server Options + ssl_mode_async: + enum: + - enabled + - disabled + type: string + x-display-name: Asynchronous TLS I/O operations stats_timeout: type: integer x-nullable: true tune_ssl_default_dh_param: type: integer x-display-name: SSL Default DH Parameter Size + user: + pattern: ^[^\s]+$ + type: string + x-display-name: User title: Global type: object defaults: additionalProperties: false description: HAProxy defaults configuration properties: + abortonclose: + enum: + - enabled + - disabled + type: string adv_check: enum: - ssl-hello-chk @@ -243,10 +304,20 @@ definitions: - pgsql-check - tcp-check - redis-check + - httpchk type: string x-display-name: Advanced Check + allbackups: + enum: + - enabled + - disabled + type: string + x-display-name: All Backups balance: $ref: '#/definitions/balance' + bind_process: + pattern: ^[^\s]+$ + type: string check_timeout: type: integer x-nullable: true @@ -307,6 +378,14 @@ definitions: x-display-name: External Check Path forwardfor: $ref: '#/definitions/forwardfor' + http-buffer-request: + enum: + - enabled + - disabled + type: string + x-display-name: HTTP bufferrequest + http-check: + $ref: '#/definitions/http-check' http-use-htx: enum: - enabled @@ -330,8 +409,15 @@ definitions: http_request_timeout: type: integer x-nullable: true - httpchk: - $ref: '#/definitions/httpchk' + http_reuse: + enum: + - aggressive + - always + - never + - safe + type: string + httpchk_params: + $ref: '#/definitions/httpchk_params' httplog: type: boolean x-display-name: HTTP Log @@ -348,6 +434,12 @@ definitions: log_tag: pattern: ^[^\s]+$ type: string + logasap: + enum: + - enabled + - disabled + type: string + x-display-name: Log ASAP maxconn: type: integer x-display-name: Max Connections @@ -357,6 +449,12 @@ definitions: - tcp - http type: string + monitor_uri: + $ref: '#/definitions/monitor_uri' + mysql_check_params: + $ref: '#/definitions/mysql_check_params' + pgsql_check_params: + $ref: '#/definitions/pgsql_check_params' queue_timeout: type: integer x-nullable: true @@ -368,9 +466,25 @@ definitions: server_timeout: type: integer x-nullable: true + smtpchk_params: + $ref: '#/definitions/smtpchk_params' + stats_options: + $ref: '#/definitions/stats_options' tcplog: type: boolean x-display-name: TCP Log + tunnel_timeout: + type: integer + x-nullable: true + unique_id_format: + type: string + x-display-name: Unique ID format + unique_id_header: + type: string + x-dependency: + unique_id_format: + required: true + x-display-name: Unique ID header title: Defaults type: object frontend: @@ -383,6 +497,9 @@ definitions: mode: http name: test_frontend properties: + bind_process: + pattern: ^[^\s]+$ + type: string clflog: type: boolean x-dependency: @@ -423,6 +540,12 @@ definitions: x-dependency: mode: value: http + http-buffer-request: + enum: + - enabled + - disabled + type: string + x-display-name: HTTP bufferrequest http-use-htx: enum: - enabled @@ -472,6 +595,12 @@ definitions: log_tag: pattern: ^[A-Za-z0-9-_.:]+$ type: string + logasap: + enum: + - enabled + - disabled + type: string + x-display-name: Log ASAP maxconn: type: integer x-display-name: Max Connections @@ -481,16 +610,31 @@ definitions: - http - tcp type: string + monitor_fail: + $ref: '#/definitions/monitor_fail' + monitor_uri: + $ref: '#/definitions/monitor_uri' name: pattern: ^[A-Za-z0-9-_.:]+$ type: string x-nullable: false + stats_options: + $ref: '#/definitions/stats_options' tcplog: type: boolean x-dependency: mode: value: tcp x-display-name: TCP Log + unique_id_format: + type: string + x-display-name: Unique ID format + unique_id_header: + type: string + x-dependency: + unique_id_format: + required: true + x-display-name: Unique ID header required: - name title: Frontend @@ -505,17 +649,23 @@ definitions: additionalProperties: false description: HAProxy backend configuration example: + adv_check: httpchk balance: algorithm: roundrobin forwardfor: enabled: enabled - httpchk: - method: OPTIONS + httpchk_params: + method: GET uri: /check version: HTTP/1.1 mode: http name: test_backend properties: + abortonclose: + enum: + - enabled + - disabled + type: string adv_check: enum: - ssl-hello-chk @@ -525,10 +675,20 @@ definitions: - pgsql-check - tcp-check - redis-check + - httpchk type: string x-display-name: Advanced Check + allbackups: + enum: + - enabled + - disabled + type: string + x-display-name: All Backups balance: $ref: '#/definitions/balance' + bind_process: + pattern: ^[^\s]+$ + type: string check_timeout: type: integer x-nullable: true @@ -580,10 +740,19 @@ definitions: - avalanche type: string type: object + http-buffer-request: + enum: + - enabled + - disabled + type: string + x-display-name: HTTP bufferrequest + http-check: + $ref: '#/definitions/http-check' http-use-htx: enum: - enabled - disabled + pattern: ^[^\s]+$ type: string x-dependency: mode: @@ -617,8 +786,18 @@ definitions: mode: value: http x-nullable: true - httpchk: - $ref: '#/definitions/httpchk' + http_reuse: + enum: + - aggressive + - always + - never + - safe + type: string + x-dependency: + mode: + value: http + httpchk_params: + $ref: '#/definitions/httpchk_params' x-dependency: mode: value: http @@ -630,10 +809,14 @@ definitions: - http - tcp type: string + mysql_check_params: + $ref: '#/definitions/mysql_check_params' name: pattern: ^[A-Za-z0-9-_.:]+$ type: string x-nullable: false + pgsql_check_params: + $ref: '#/definitions/pgsql_check_params' queue_timeout: type: integer x-nullable: true @@ -645,6 +828,10 @@ definitions: server_timeout: type: integer x-nullable: true + smtpchk_params: + $ref: '#/definitions/smtpchk_params' + stats_options: + $ref: '#/definitions/stats_options' stick_table: properties: expire: @@ -675,6 +862,9 @@ definitions: - binary type: string type: object + tunnel_timeout: + type: integer + x-nullable: true required: - name title: Backend @@ -685,6 +875,51 @@ definitions: type: array items: $ref: '#/definitions/backend' + peer_section: + additionalProperties: false + description: HAProxy peer_section configuration + properties: + name: + pattern: ^[A-Za-z0-9-_.:]+$ + type: string + x-nullable: false + required: + - name + title: Peer Section + type: object + peer_sections: + title: Peer_Section + description: HAProxy peer_section array + type: array + items: + $ref: '#/definitions/peer_section' + peer_entry: + description: Peer Entry from peers table + properties: + address: + pattern: ^[^\s]+$ + type: string + name: + pattern: ^[A-Za-z0-9-_.:]+$ + type: string + x-nullable: false + port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + required: + - name + - address + - port + title: Peer Entry + type: object + peer_entries: + title: Peer entries + description: HAProxy peer entries array + type: array + items: + $ref: '#/definitions/peer_entry' bind: additionalProperties: false description: HAProxy frontend bind configuration @@ -693,6 +928,8 @@ definitions: name: http port: 80 properties: + accept_netscaler_cip: + type: integer accept_proxy: type: boolean address: @@ -704,18 +941,176 @@ definitions: pattern: ^[^\s]+$ type: string x-display-name: ALPN Protocols + backlog: + type: string + ca_ignore_err: + type: string + x-dependency: + ssl: + value: true + ca_sign_file: + type: string + x-dependency: + ssl: + value: true + ca_sign_pass: + type: string + x-dependency: + ssl: + value: true + x-display-name: Passphrase + ca_verify_file: + type: string + x-dependency: + ca_file: + value: true + ciphers: + type: string + x-dependency: + ssl: + value: true + ciphersuites: + type: string + x-dependency: + ssl: + value: true + crl_file: + type: string + x-dependency: + ssl: + value: true + crt_ignore_err: + type: string + x-dependency: + ssl: + value: true + crt_list: + type: string + x-dependency: + ssl: + value: true + curves: + type: string + x-dependency: + ssl: + value: true + defer_accept: + type: boolean + ecdhe: + type: string + x-dependency: + ssl: + value: true + expose_fd_listeners: + type: boolean + force_sslv3: + type: boolean + force_tlsv10: + type: boolean + force_tlsv11: + type: boolean + force_tlsv12: + type: boolean + force_tlsv13: + type: boolean + generate_certificates: + type: boolean + x-dependency: + ssl: + value: true + gid: + type: integer + x-display-name: Group ID + group: + type: string + x-display-name: Group name + id: + type: string + x-display-name: Socket ID + interface: + type: string + level: + enum: + - user + - operator + - admin + type: string + maxconn: + type: integer + mode: + type: string + mss: + type: string name: pattern: ^[^\s]+$ type: string x-nullable: false + namespace: + type: string + nice: + type: integer + no_ca_names: + type: boolean + x-dependency: + ssl: + value: true + no_sslv3: + type: boolean + x-dependency: + ssl: + value: true + no_tls_tickets: + type: boolean + x-dependency: + ssl: + value: true + no_tlsv10: + type: boolean + x-dependency: + ssl: + value: true + no_tlsv11: + type: boolean + x-dependency: + ssl: + value: true + no_tlsv12: + type: boolean + x-dependency: + ssl: + value: true + no_tlsv13: + type: boolean + x-dependency: + ssl: + value: true + npn: + type: string port: maximum: 65535 minimum: 1 type: integer x-nullable: true + port-range-end: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + prefer_client_ciphers: + type: boolean process: pattern: ^[^\s]+$ type: string + proto: + type: string + x-display-name: Protocol name + severity_output: + enum: + - none + - number + - string + type: string + x-display-name: Format ssl: type: boolean ssl_cafile: @@ -731,13 +1126,44 @@ definitions: x-dependency: ssl: value: true + ssl_max_ver: + enum: + - SSLv3 + - TLSv1.0 + - TLSv1.1 + - TLSv1.2 + - TLSv1.3 + type: string + ssl_min_ver: + enum: + - SSLv3 + - TLSv1.0 + - TLSv1.1 + - TLSv1.2 + - TLSv1.3 + type: string + strict_sni: + type: boolean + x-dependency: + ssl: + value: true tcp_user_timeout: type: integer x-nullable: true + tfo: + type: boolean + tls_ticket_keys: + type: string transparent: type: boolean + uid: + type: string + user: + type: string v4v6: type: boolean + v6only: + type: boolean verify: enum: - none @@ -763,7 +1189,6 @@ definitions: example: address: 10.1.1.1 check: enabled - max-connections: 500 name: www port: 8080 weight: 80 @@ -795,6 +1220,10 @@ definitions: type: string allow_0rtt: type: boolean + alpn: + pattern: ^[^\s]+$ + type: string + x-display-name: ALPN Protocols backup: enum: - enabled @@ -805,41 +1234,171 @@ definitions: - enabled - disabled type: string + check-sni: + pattern: ^[^\s]+$ + type: string check-ssl: enum: - enabled - disabled type: string - cookie: + check_alpn: pattern: ^[^\s]+$ type: string - downinter: - type: integer - x-nullable: true - fastinter: - type: integer + x-display-name: Protocols + check_proto: + pattern: ^[^\s]+$ + type: string + x-display-name: Name + check_via_socks4: + enum: + - enabled + - disabled + type: string + ciphers: + type: string + x-dependency: + ssl: + value: enabled + ciphersuites: + type: string + x-dependency: + ssl: + value: enabled + cookie: + pattern: ^[^\s]+$ + type: string + crl_file: + type: string + x-dependency: + ssl: + value: enabled + downinter: + type: integer + x-nullable: true + error_limit: + type: integer + x-display-name: Error count + fall: + type: integer + x-display-name: Nr. of consecutive failed checks + x-nullable: true + fastinter: + type: integer x-nullable: true + force_sslv3: + enum: + - enabled + - disabled + type: string + force_tlsv10: + enum: + - enabled + - disabled + type: string + force_tlsv11: + enum: + - enabled + - disabled + type: string + force_tlsv12: + enum: + - enabled + - disabled + type: string + force_tlsv13: + enum: + - enabled + - disabled + type: string health_check_port: maximum: 65535 minimum: 1 type: integer x-nullable: true + id: + type: integer + x-nullable: true + init-addr: + pattern: ^[^\s]+$ + type: string + x-nullable: true inter: type: integer x-nullable: true + log_proto: + enum: + - legacy + - octet-count + type: string maintenance: enum: - enabled - disabled type: string + max_reuse: + type: integer + x-nullable: true maxconn: type: integer - x-display-name: Max Connections + x-display-name: Max Concurrent Connections + x-nullable: true + maxqueue: + type: integer + x-display-name: Max Number of Connections + x-nullable: true + minconn: + type: integer x-nullable: true name: pattern: ^[^\s]+$ type: string x-nullable: false + namespace: + type: string + no_sslv3: + enum: + - enabled + - disabled + type: string + no_tlsv10: + enum: + - enabled + - disabled + type: string + no_tlsv11: + enum: + - enabled + - disabled + type: string + no_tlsv12: + enum: + - enabled + - disabled + type: string + no_tlsv13: + enum: + - enabled + - disabled + type: string + no_verifyhost: + enum: + - enabled + - disabled + type: string + npn: + type: string + x-dependency: + ssl: + value: enabled + observe: + enum: + - layer4 + - layer7 + type: string + x-dependency: + ssl: + value: enabled on-error: enum: - fastinter @@ -855,11 +1414,65 @@ definitions: enum: - shutdown-backup-sessions type: string + pool_low_conn: + type: integer + x-nullable: true + pool_max_conn: + type: integer + x-nullable: true + pool_purge_delay: + type: integer + x-nullable: true port: maximum: 65535 minimum: 1 type: integer x-nullable: true + proto: + pattern: ^[^\s]+$ + type: string + proxy-v2-options: + items: + enum: + - ssl + - cert-cn + - ssl-cipher + - cert-sig + - cert-key + - authority + - crc32c + - unique-id + type: string + type: array + redir: + type: string + x-display-name: Prefix + resolve-net: + pattern: ^[^,\s][^\,]*[^,\s]*$ + type: string + x-dependency: + resolvers: + required: true + resolve-prefer: + enum: + - ipv4 + - ipv6 + type: string + x-dependency: + resolvers: + required: true + resolve_opts: + pattern: ^[^,\s][^\,]*[^,\s]*$ + type: string + resolvers: + pattern: ^[^\s]+$ + type: string + x-dynamic-enum: + operation: getResolvers + property: name + rise: + type: integer + x-nullable: true send-proxy: enum: - enabled @@ -870,6 +1483,30 @@ definitions: - enabled - disabled type: string + send_proxy_v2_ssl: + enum: + - enabled + - disabled + type: string + send_proxy_v2_ssl_cn: + enum: + - enabled + - disabled + type: string + slowstart: + type: integer + x-nullable: true + sni: + pattern: ^[^\s]+$ + type: string + socks4: + pattern: ^[^\s]+$ + type: string + x-dependency: + check-via-socks4: + required: true + source: + type: string ssl: enum: - enabled @@ -888,6 +1525,39 @@ definitions: x-dependency: ssl: value: enabled + ssl_max_ver: + enum: + - SSLv3 + - TLSv1.0 + - TLSv1.1 + - TLSv1.2 + - TLSv1.3 + type: string + ssl_min_ver: + enum: + - SSLv3 + - TLSv1.0 + - TLSv1.1 + - TLSv1.2 + - TLSv1.3 + type: string + ssl_reuse: + enum: + - enabled + - disabled + type: string + stick: + enum: + - enabled + - disabled + type: string + tcp_ut: + type: integer + tfo: + enum: + - enabled + - disabled + type: string tls_tickets: enum: - enabled @@ -896,6 +1566,8 @@ definitions: x-dependency: ssl: value: enabled + track: + type: string verify: enum: - none @@ -904,6 +1576,13 @@ definitions: x-dependency: ssl: value: enabled + verifyhost: + type: string + x-dependency: + ssl: + value: enabled + verify: + value: required weight: type: integer x-nullable: true @@ -926,7 +1605,7 @@ definitions: cond_test: '{ src 192.168.0.0/16 }' hdr_format: '%T' hdr_name: X-Haproxy-Current-Date - id: 0 + index: 0 type: add-header properties: acl_file: @@ -956,6 +1635,37 @@ definitions: type: value: auth x-display-name: Authentication Realm + cache_name: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: cache-use + x-display-name: Cache Name + capture_id: + type: integer + x-dependency: + type: + required: true + value: capture + x-display-name: Capture SlotID + x-nullable: true + capture_len: + type: integer + x-dependency: + type: + required: true + value: capture + x-display-name: Capture Len + capture_sample: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: capture + x-display-name: Capture Sample cond: enum: - if @@ -973,15 +1683,40 @@ definitions: operation: getACLs property: acl_name deny_status: + enum: + - 200 + - 400 + - 403 + - 405 + - 408 + - 425 + - 429 + - 500 + - 502 + - 503 + - 504 type: integer x-dependency: type: value: - deny - tarpit - x-nullable: false + x-nullable: true + expr: + type: string + x-dependency: + type: + required: true + value: + - do-resolve + - set-dst + - set-dst-port + - set-priority-class + - set-priority-offset + - set-src + - set-src-port + x-display-name: Standard HAProxy expression hdr_format: - pattern: ^[^\s]+$ type: string x-dependency: type: @@ -993,7 +1728,6 @@ definitions: - add-header x-display-name: Header Format hdr_match: - pattern: ^[^\s]+$ type: string x-dependency: type: @@ -1003,7 +1737,6 @@ definitions: - replace-value x-display-name: Header Match hdr_name: - pattern: ^[^\s]+$ type: string x-dependency: type: @@ -1015,7 +1748,23 @@ definitions: - set-header - replace-value x-display-name: Header Name - id: + hint_format: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: early-hint + x-display-name: Hint Format + hint_name: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: early-hint + x-display-name: Hint Name + index: type: integer x-nullable: true log_level: @@ -1034,63 +1783,250 @@ definitions: type: required: true value: set-log-level - path_fmt: + lua_action: + pattern: ^[^\s]+$ type: string x-dependency: type: required: true - value: set-path - query-fmt: + value: lua + lua_params: type: string x-dependency: type: - required: true - value: set-query - redir_code: - enum: - - 301 - - 302 - - 303 - type: integer - x-dependency: - type: - value: redirect - x-display-name: Redirect Code - redir_option: + value: lua + map_file: + pattern: ^[^\s]+$ type: string x-dependency: type: required: true - value: redirect - x-display-name: Redirect Option - redir_type: - enum: - - location - - prefix - - scheme + value: + - set-map + - del-map + map_keyfmt: + pattern: ^[^\s]+$ type: string x-dependency: type: required: true - value: redirect - x-display-name: Redirect Type - redir_value: + value: + - set-map + - del-map + x-display-name: Map Key Format + map_valuefmt: pattern: ^[^\s]+$ type: string x-dependency: type: required: true - value: redirect - x-display-name: Redirect Value - spoe_engine: - pattern: ^[^\s]+$ + value: set-map + x-display-name: Map Value Format + mark_value: + pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$ type: string x-dependency: type: required: true - value: send-spoe-group - x-display-name: SPOE Engine - spoe_group: + value: set-mark + x-display-name: Mark Value + method_fmt: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: set-method + nice_value: + maximum: 1024 + minimum: -1024 + type: integer + x-dependency: + type: + required: true + value: set-nice + x-display-name: Nice Value + x-nullable: false + path_fmt: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: + - set-path + - replace-path + path_match: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: + - set-path + - replace-path + protocol: + enum: + - ipv4 + - ipv6 + type: string + x-dependency: + type: + required: false + value: do-resolve + x-display-name: Protocol + query-fmt: + type: string + x-dependency: + type: + required: true + value: set-query + redir_code: + enum: + - 301 + - 302 + - 303 + - 307 + - 308 + type: integer + x-dependency: + type: + value: redirect + x-display-name: Redirect Code + x-nullable: true + redir_option: + type: string + x-dependency: + type: + required: true + value: redirect + x-display-name: Redirect Option + redir_type: + enum: + - location + - prefix + - scheme + type: string + x-dependency: + type: + required: true + value: redirect + x-display-name: Redirect Type + redir_value: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: redirect + x-display-name: Redirect Value + resolvers: + type: string + x-dependency: + type: + required: true + value: do-resolve + x-display-name: Resolvers + return_content: + type: string + x-dependency: + return_content_format: + required: true + value: + - errofile + - errorfiles + - file + - lf-file + - string + - lf-string + return_content_format: + enum: + - default-errorfile + - errorfile + - errorfiles + - file + - lf-file + - string + - lf-string + type: string + x-dependency: + type: + value: return + return_content_type: + type: string + x-dependency: + type: + value: return + x-display-name: Return content type + x-nullable: true + return_hdrs: + items: + properties: + fmt: + type: string + name: + type: string + required: + - name + - fmt + type: object + type: array + x-dependency: + return_content_format: + value: + - file + - lf-file + - string + - lf-string + x-go-name: ReturnHeaders + return_status_code: + maximum: 599 + minimum: 200 + type: integer + x-dependency: + type: + value: return + x-display-name: Return Error Code + x-nullable: true + sc_expr: + type: string + x-dependency: + type: + required: true + value: sc-set-gpt0 + x-display-name: ScSet Expression Value + sc_id: + type: integer + x-dependency: + type: + required: true + value: + - sc-inc-gpc0 + - sc-inc-gpc1 + - sc-set-gpt0 + sc_int: + type: integer + x-dependency: + type: + required: true + value: sc-set-gpt0 + x-display-name: ScSet Integer Value + x-nullable: true + service_name: + type: string + x-dependency: + type: + required: true + value: use-service + spoe_engine: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: send-spoe-group + x-display-name: SPOE Engine + spoe_group: pattern: ^[^\s]+$ type: string x-dependency: @@ -1098,6 +2034,68 @@ definitions: required: true value: send-spoe-group x-display-name: SPOE Group + strict_mode: + enum: + - "on" + - "off" + type: string + x-dependency: + type: + required: true + value: strict-mode + tos_value: + pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$ + type: string + x-dependency: + type: + required: true + value: set-tos + x-display-name: Tos Value + track-sc0-key: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: track-sc0 + x-display-name: track-sc0 Key + track-sc0-table: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + value: track-sc0 + x-display-name: track-sc0 Table + track-sc1-key: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: track-sc1 + x-display-name: track-sc1 Key + track-sc1-table: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + value: track-sc1 + x-display-name: track-sc1 Table + track-sc2-key: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: track-sc2 + x-display-name: track-sc2 Key + track-sc2-table: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + value: track-sc2 + x-display-name: track-sc2 Table type: enum: - allow @@ -1112,12 +2110,44 @@ definitions: - set-header - set-log-level - set-path + - replace-path - set-query - set-uri - set-var - send-spoe-group - add-acl - del-acl + - capture + - track-sc0 + - track-sc1 + - track-sc2 + - set-map + - del-map + - cache-use + - disable-l7-retry + - early-hint + - replace-uri + - sc-inc-gpc0 + - sc-inc-gpc1 + - do-resolve + - set-dst + - set-dst-port + - sc-set-gpt0 + - set-mark + - set-nice + - set-method + - set-priority-class + - set-priority-offset + - set-src + - set-src-por + - wait-for-handshake + - set-tos + - silent-drop + - unset-var + - strict-mode + - lua + - use-service + - return type: string x-nullable: false uri-fmt: @@ -1125,7 +2155,15 @@ definitions: x-dependency: type: required: true - value: set-uri + value: + - set-uri + - replace-uri + uri-match: + type: string + x-dependency: + type: + required: true + value: replace-uri var_expr: type: string x-dependency: @@ -1139,16 +2177,21 @@ definitions: x-dependency: type: required: true - value: set-var + value: + - set-var + - do-resolve + - unset-var var_scope: pattern: ^[^\s]+$ type: string x-dependency: type: required: true - value: set-var + value: + - set-var + - unset-var required: - - id + - index - type title: HTTP Request Rule type: object @@ -1167,7 +2210,7 @@ definitions: cond_test: '{ src 192.168.0.0/16 }' hdr_format: '%T' hdr_name: X-Haproxy-Current-Date - id: 0 + index: 0 type: add-header properties: acl_file: @@ -1189,6 +2232,22 @@ definitions: - add-acl - del-acl x-display-name: ACK Key Format + capture_id: + type: integer + x-dependency: + type: + required: true + value: capture + x-display-name: Capture SlotID + x-nullable: true + capture_sample: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: capture + x-display-name: Capture Sample cond: enum: - if @@ -1206,7 +2265,6 @@ definitions: operation: getACLs property: acl_name hdr_format: - pattern: ^[^\s]+$ type: string x-dependency: type: @@ -1218,7 +2276,6 @@ definitions: - add-header x-display-name: Header Format hdr_match: - pattern: ^[^\s]+$ type: string x-dependency: type: @@ -1228,7 +2285,6 @@ definitions: - replace-value x-display-name: Header Match hdr_name: - pattern: ^[^\s]+$ type: string x-dependency: type: @@ -1240,7 +2296,7 @@ definitions: - set-header - replace-value x-display-name: Header Name - id: + index: type: integer x-nullable: true log_level: @@ -1259,16 +2315,76 @@ definitions: type: required: true value: set-log-level + lua_action: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: lua + lua_params: + type: string + x-dependency: + type: + value: lua + map_file: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: + - set-map + - del-map + map_keyfmt: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: + - set-map + - del-map + x-display-name: Map Key Format + map_valuefmt: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: set-map + x-display-name: Map Value Format + mark_value: + pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$ + type: string + x-dependency: + type: + required: true + value: set-mark + x-display-name: Mark Value + nice_value: + maximum: 1024 + minimum: -1024 + type: integer + x-dependency: + type: + required: true + value: set-nice + x-display-name: Nice Value + x-nullable: false redir_code: enum: - 301 - 302 - 303 + - 307 + - 308 type: integer x-dependency: type: value: redirect x-display-name: Redirect Code + x-nullable: true redir_option: type: string x-dependency: @@ -1295,6 +2411,30 @@ definitions: required: true value: redirect x-display-name: Redirect Value + sc_expr: + type: string + x-dependency: + type: + required: true + value: sc-set-gpt0 + x-display-name: ScSet Expression Value + sc_id: + type: integer + x-dependency: + type: + required: true + value: + - sc-inc-gpc0 + - sc-inc-gpc1 + - sc-set-gpt0 + sc_int: + type: integer + x-dependency: + type: + required: true + value: sc-set-gpt0 + x-display-name: ScSet Integer Value + x-nullable: true spoe_engine: pattern: ^[^\s]+$ type: string @@ -1323,22 +2463,100 @@ definitions: x-dependency: type: value: set-status - type: + strict_mode: enum: - - allow - - deny - - redirect - - add-header - - set-header - - del-header - - set-log-level - - set-var - - set-status - - send-spoe-group - - replace-header - - replace-value - - add-acl + - "on" + - "off" + type: string + x-dependency: + type: + required: true + value: strict-mode + tos_value: + pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$ + type: string + x-dependency: + type: + required: true + value: set-tos + x-display-name: Tos Value + track-sc0-key: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: track-sc0 + x-display-name: track-sc0 Key + track-sc0-table: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + value: track-sc0 + x-display-name: track-sc0 Table + track-sc1-key: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: track-sc1 + x-display-name: track-sc1 Key + track-sc1-table: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + value: track-sc1 + x-display-name: track-sc1 Table + track-sc2-key: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: track-sc2 + x-display-name: track-sc2 Key + track-sc2-table: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + value: track-sc2 + x-display-name: track-sc2 Table + type: + enum: + - allow + - deny + - redirect + - add-header + - set-header + - del-header + - set-log-level + - set-var + - set-status + - send-spoe-group + - replace-header + - replace-value + - add-acl - del-acl + - capture + - set-map + - del-map + - sc-inc-gpc0 + - sc-inc-gpc1 + - sc-set-gpt0 + - set-mark + - set-nice + - set-tos + - silent-drop + - unset-var + - track-sc0 + - track-sc1 + - track-sc2 + - strict-mode + - lua type: string x-nullable: false var_expr: @@ -1354,16 +2572,20 @@ definitions: x-dependency: type: required: true - value: set-var + value: + - set-var + - unset-var var_scope: pattern: ^[^\s]+$ type: string x-dependency: type: required: true - value: set-var + value: + - set-var + - unset-var required: - - id + - index - type title: HTTP Response Rule type: object @@ -1379,13 +2601,33 @@ definitions: example: cond: if cond_test: '{ src 192.168.0.0/16 }' - id: 0 - type: accept + index: 0 + type: connection properties: action: enum: - accept + - capture + - do-resolve + - expect-netscaler-cip + - expect-proxy - reject + - sc-inc-gpc0 + - sc-inc-gpc1 + - sc-set-gpt0 + - send-spoe-group + - set-dst-port + - set-dst + - set-priority + - set-src + - set-var + - silent-drop + - track-sc0 + - track-sc1 + - track-sc2 + - unset-var + - use-service + - lua type: string x-dependency: type: @@ -1395,6 +2637,31 @@ definitions: - content - session x-nullable: false + capture_len: + type: integer + x-dependency: + action: + required: true + value: capture + type: + required: true + value: + - connection + - content + x-display-name: Capture Length + capture_sample: + pattern: ^[^\s]+$ + type: string + x-dependency: + action: + required: true + value: capture + type: + required: true + value: + - connection + - content + x-display-name: Capture Sample cond: enum: - if @@ -1423,9 +2690,157 @@ definitions: freeFormat: true operation: getACLs property: acl_name - id: + expr: + type: string + x-dependency: + action: + required: true + value: + - do-resolve + - set-var + - set-src + - set-priority + - set-dst + - set-dst-port + type: + value: + - session + - connection + - content + x-display-name: Standard HAProxy expression + gpt_value: + type: string + x-dependency: + action: + required: true + value: sc-set-gpt0 + type: + required: true + value: + - connection + - content + - session + x-display-name: Sticky counter value + index: type: integer x-nullable: true + lua_action: + pattern: ^[^\s]+$ + type: string + x-dependency: + action: + required: true + value: lua + type: + value: + - connection + - content + x-display-name: Lua action name + lua_params: + type: string + x-dependency: + action: + value: lua + type: + value: + - connection + - content + x-display-name: Lua action params + priority_type: + enum: + - class + - offset + type: string + x-dependency: + action: + required: true + value: set-priority + type: + value: + - content + resolve_protocol: + enum: + - ipv4 + - ipv6 + type: string + x-dependency: + action: + required: false + value: do-resolve + type: + required: true + value: + - content + x-display-name: Protocol + resolve_resolvers: + type: string + x-dependency: + action: + required: true + value: do-resolve + type: + required: true + value: + - content + x-display-name: Resolvers + resolve_var: + type: string + x-dependency: + action: + required: true + value: do-resolve + type: + required: true + value: + - content + x-display-name: Variable name + sc_inc_id: + type: string + x-dependency: + action: + required: true + value: + - sc-inc-gpc0 + - sc-inc-gpc1 + - sc-set-gpt0 + type: + required: true + value: + - connection + - content + - session + x-display-name: Sticky counter ID + service_name: + type: string + x-dependency: + action: + required: true + value: use-service + type: + value: content + x-display-name: Service name + spoe_engine_name: + type: string + x-dependency: + action: + required: true + value: send-spoe-group + type: + required: true + value: + - content + x-display-name: Engine name + spoe_group_name: + type: string + x-dependency: + action: + required: true + value: send-spoe-group + type: + required: true + value: + - content + x-display-name: Group name timeout: type: integer x-dependency: @@ -1433,6 +2848,36 @@ definitions: required: true value: inspect-delay x-nullable: true + track_key: + type: string + x-dependency: + action: + required: true + value: + - track-sc0 + - track-sc1 + - track-sc2 + type: + value: + - session + - connection + - content + x-display-name: Sample expression rule + track_table: + type: string + x-dependency: + action: + required: false + value: + - track-sc0 + - track-sc1 + - track-sc2 + type: + value: + - session + - connection + - content + x-display-name: Optional table name type: enum: - connection @@ -1441,8 +2886,36 @@ definitions: - session type: string x-nullable: false + var_name: + pattern: ^[^\s]+$ + type: string + x-dependency: + action: + required: true + value: + - set-var + - unset-var + type: + value: + - session + - content + x-display-name: Variable name + var_scope: + pattern: ^[^\s]+$ + type: string + x-dependency: + action: + required: true + value: + - set-var + - unset-var + type: + value: + - session + - content + x-display-name: Variable scope required: - - id + - index - type title: TCP Request Rule type: object @@ -1458,13 +2931,14 @@ definitions: example: cond: if cond_test: '{ src 192.168.0.0/16 }' - id: 0 - type: accept + index: 0 + type: content properties: action: enum: - accept - reject + - lua type: string x-dependency: type: @@ -1492,9 +2966,27 @@ definitions: freeFormat: true operation: getACLs property: acl_name - id: + index: type: integer x-nullable: true + lua_action: + pattern: ^[^\s]+$ + type: string + x-dependency: + action: + required: true + value: lua + type: + value: content + x-display-name: Lua action name + lua_params: + type: string + x-dependency: + action: + value: lua + type: + value: content + x-display-name: Lua action params timeout: type: integer x-dependency: @@ -1509,7 +3001,7 @@ definitions: type: string x-nullable: false required: - - id + - index - type title: TCP Response Rule type: object @@ -1526,7 +3018,7 @@ definitions: example: cond: if cond_test: '{ req_ssl_sni -i www.example.com }' - id: 0 + index: 0 name: test_backend properties: cond: @@ -1545,7 +3037,7 @@ definitions: freeFormat: true operation: getACLs property: acl_name - id: + index: type: integer x-nullable: true name: @@ -1557,7 +3049,7 @@ definitions: property: name x-nullable: false required: - - id + - index - name title: Backend Switching Rule type: object @@ -1574,7 +3066,7 @@ definitions: example: cond: if cond_test: '{ req_ssl_sni -i www.example.com }' - id: 0 + index: 0 target_server: www properties: cond: @@ -1593,7 +3085,7 @@ definitions: freeFormat: true operation: getACLs property: acl_name - id: + index: type: integer x-nullable: true target_server: @@ -1604,7 +3096,7 @@ definitions: property: name x-nullable: false required: - - id + - index - target_server title: Server Switching Rule type: object @@ -1618,7 +3110,7 @@ definitions: additionalProperties: false description: HAProxy filters example: - id: 0 + index: 0 trace_name: name trace_rnd_parsing: true type: trace @@ -1630,7 +3122,7 @@ definitions: type: required: true value: cache - id: + index: type: integer x-nullable: true spoe_config: @@ -1678,7 +3170,7 @@ definitions: type: string x-nullable: false required: - - id + - index - type title: Filter type: object @@ -1693,9 +3185,9 @@ definitions: description: Define a pattern used to create an entry in a stickiness table or matching condition or associate a user to a server. example: - id: 0 + index: 0 pattern: src - type: storeonly + type: match properties: cond: enum: @@ -1713,7 +3205,7 @@ definitions: freeFormat: true operation: getACLs property: acl_name - id: + index: type: integer x-nullable: true pattern: @@ -1732,7 +3224,7 @@ definitions: type: string x-nullable: false required: - - id + - index - type - pattern title: Stick Rule @@ -1805,7 +3297,7 @@ definitions: value: false global: type: boolean - id: + index: type: integer x-nullable: true length: @@ -1852,7 +3344,7 @@ definitions: nolog: type: boolean required: - - id + - index title: Log Target type: object log_targets: @@ -1876,14 +3368,14 @@ definitions: pattern: ^[^\s]+$ type: string x-nullable: false - id: + index: type: integer x-nullable: true value: type: string x-nullable: false required: - - id + - index - acl_name - criterion - value @@ -1898,63 +3390,11 @@ definitions: native_stats: description: HAProxy stats array items: - description: Stats from one runtime API - properties: - error: - type: string - runtimeAPI: - type: string - stats: - items: - $ref: '#/definitions/native_stat' - type: array - title: Stats collection - type: object - x-go-name: NativeStatsCollection + $ref: '#/definitions/native_stats_collection' title: Stats Array type: array - x-go-name: NativeStats native_stat: description: Current stats for one object. - example: - name: frontend_test - stats: - bin: 4326578 - bout: 889901290 - comp_byp: 0 - comp_in: 0 - comp_out: 0 - comp_rsp: 0 - conn_rate: 12 - conn_rate_max: 456 - conn_tot: 45682 - dcon: 0 - dreq: 4 - dresp: 1 - dses: 0 - ereq: 54 - hrsp_1xx: 0 - hrsp_2xx: 165 - hrsp_3xx: 12 - hrsp_4xx: 50 - hrsp_5xx: 4 - hrsp_other: 0 - iid: 0 - intercepted: 346 - mode: http - pid: 3204 - rate: 64 - rate_lim: 20000 - rate_max: 4000 - req_rate: 49 - req_rate_max: 3965 - req_total: 1254786 - scur: 129 - slim: 2000 - smax: 2000 - status: UP - stot: 12902 - type: frontend properties: backend_name: type: string @@ -1963,442 +3403,7 @@ definitions: name: type: string stats: - properties: - act: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - addr: - type: string - x-dependency: - type: server - agent_code: - type: integer - x-dependency: - type: server - x-nullable: true - agent_desc: - type: string - x-dependency: - type: server - agent_duration: - type: integer - x-dependency: - type: server - x-nullable: true - agent_fall: - type: integer - x-dependency: - type: server - x-nullable: true - agent_health: - type: integer - x-dependency: - type: server - x-nullable: true - agent_rise: - type: integer - x-dependency: - type: server - x-nullable: true - agent_status: - enum: - - UNK - - INI - - SOCKERR - - L40K - - L4TOUT - - L4CON - - L7OK - - L7STS - type: string - x-dependency: - type: server - algo: - type: string - x-dependency: - type: backend - bck: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - bin: - type: integer - x-nullable: true - bout: - type: integer - x-nullable: true - check_code: - type: integer - x-dependency: - type: server - x-nullable: true - check_desc: - type: string - x-dependency: - type: server - check_duration: - type: integer - x-dependency: - type: server - x-nullable: true - check_fall: - type: integer - x-dependency: - type: server - x-nullable: true - check_health: - type: integer - x-dependency: - type: server - x-nullable: true - check_rise: - type: integer - x-dependency: - type: server - x-nullable: true - check_status: - enum: - - UNK - - INI - - SOCKERR - - L40K - - L4TOUT - - L4CON - - L6OK - - L6TOUT - - L6RSP - - L7OK - - L7OKC - - L7TOUT - - L7RSP - - L7STS - type: string - x-dependency: - type: server - chkdown: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - chkfail: - type: integer - x-dependency: - type: server - x-nullable: true - cli_abrt: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - comp_byp: - type: integer - x-dependency: - type: - - frontend - - backend - x-nullable: true - comp_in: - type: integer - x-dependency: - type: - - frontend - - backend - x-nullable: true - comp_out: - type: integer - x-dependency: - type: - - frontend - - backend - x-nullable: true - comp_rsp: - type: integer - x-dependency: - type: - - frontend - - backend - x-nullable: true - conn_rate: - type: integer - x-dependency: - type: frontend - x-nullable: true - conn_rate_max: - type: integer - x-dependency: - type: frontend - x-nullable: true - conn_tot: - type: integer - x-dependency: - type: frontend - x-nullable: true - cookie: - type: string - x-dependency: - type: - - server - - backend - ctime: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - dcon: - type: integer - x-dependency: - type: frontend - x-nullable: true - downtime: - type: integer - x-dependency: - type: server - x-nullable: true - dreq: - type: integer - x-dependency: - type: - - frontend - - backend - x-nullable: true - dresp: - type: integer - x-nullable: true - dses: - type: integer - x-dependency: - type: frontend - x-nullable: true - econ: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - ereq: - type: integer - x-dependency: - type: frontend - x-nullable: true - eresp: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - hanafail: - type: string - x-dependency: - type: server - hrsp_1xx: - type: integer - x-nullable: true - hrsp_2xx: - type: integer - x-nullable: true - hrsp_3xx: - type: integer - x-nullable: true - hrsp_4xx: - type: integer - x-nullable: true - hrsp_5xx: - type: integer - x-nullable: true - hrsp_other: - type: integer - x-nullable: true - iid: - type: integer - x-nullable: true - intercepted: - type: integer - x-dependency: - type: - - frontend - - backend - x-nullable: true - lastchg: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - lastsess: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - lbtot: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - mode: - enum: - - tcp - - http - - health - - unknown - type: string - pid: - type: integer - x-nullable: true - qcur: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - qlimit: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - qmax: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - qtime: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - rate: - type: integer - x-nullable: true - rate_lim: - type: integer - x-dependency: - type: frontend - x-nullable: true - rate_max: - type: integer - x-nullable: true - req_rate: - type: integer - x-dependency: - type: frontend - x-nullable: true - req_rate_max: - type: integer - x-dependency: - type: frontend - x-nullable: true - req_tot: - type: integer - x-dependency: - type: - - frontend - - backend - x-nullable: true - rtime: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - scur: - type: integer - x-nullable: true - sid: - type: integer - x-dependency: - type: server - x-nullable: true - slim: - type: integer - x-nullable: true - smax: - type: integer - x-nullable: true - srv_abrt: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - status: - enum: - - UP - - DOWN - - NOLB - - MAINT - - no check - type: string - stot: - type: integer - x-nullable: true - throttle: - type: integer - x-dependency: - type: server - x-nullable: true - tracked: - type: integer - x-dependency: - type: server - x-nullable: true - ttime: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - weight: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - wredis: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - wretr: - type: integer - x-dependency: - type: - - server - - backend - x-nullable: true - type: object - x-go-name: NativeStatStats + $ref: '#/definitions/native_stat_stats' type: enum: - backend @@ -2407,999 +3412,4856 @@ definitions: type: string title: Stats type: object - x-go-name: NativeStat - error: - additionalProperties: - type: string - description: API Error + native_stat_stats: + example: + bin: 4326578 + bout: 889901290 + comp_byp: 0 + comp_in: 0 + comp_out: 0 + comp_rsp: 0 + conn_rate: 12 + conn_rate_max: 456 + conn_tot: 45682 + dcon: 0 + dreq: 4 + dresp: 1 + dses: 0 + ereq: 54 + hrsp_1xx: 0 + hrsp_2xx: 165 + hrsp_3xx: 12 + hrsp_4xx: 50 + hrsp_5xx: 4 + hrsp_other: 0 + iid: 0 + intercepted: 346 + mode: http + pid: 3204 + rate: 64 + rate_lim: 20000 + rate_max: 4000 + req_rate: 49 + req_rate_max: 3965 + req_total: 1254786 + scur: 129 + slim: 2000 + smax: 2000 + status: UP + stot: 12902 properties: - code: + act: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - message: + addr: type: string + x-dependency: + type: server + agent_code: + type: integer + x-dependency: + type: server x-nullable: true - required: - - code - - message - title: Error - type: object - endpoint: - description: Endpoint definition - properties: - description: - description: Endpoint description + agent_desc: type: string - title: - description: Endpoint title + x-dependency: + type: server + agent_duration: + type: integer + x-dependency: + type: server + x-nullable: true + agent_fall: + type: integer + x-dependency: + type: server + x-nullable: true + agent_health: + type: integer + x-dependency: + type: server + x-nullable: true + agent_rise: + type: integer + x-dependency: + type: server + x-nullable: true + agent_status: + enum: + - UNK + - INI + - SOCKERR + - L40K + - L4TOUT + - L4CON + - L7OK + - L7STS type: string - url: - description: Path to the endpoint + x-dependency: + type: server + algo: type: string - title: Endpoint - type: object - endpoints: - title: Endpoints Array - description: Collection of endpoints - type: array - items: - $ref: '#/definitions/endpoint' - process_infos: - description: General HAProxy process information - example: - haproxy: - address: 127.0.0.1 - pid: 1234 - processes: 4 - release_date: "2016-03-11" - time: "2018-07-02T12:00:00.124Z" - uptime: 8 - version: 1.7-dev1-868ab3-148 - items: - properties: - error: - type: string - info: - properties: - active_peers: - type: integer - x-nullable: true - busy_polling: - type: integer - x-nullable: true - bytes_out_rate: - type: integer - x-nullable: true - compress_bps_in: - type: integer - x-nullable: true - compress_bps_out: - type: integer - x-nullable: true - compress_bps_rate_lim: - type: integer - x-nullable: true - conn_rate: - type: integer - x-nullable: true - conn_rate_limit: - type: integer - x-nullable: true - connected_peers: - type: integer - x-nullable: true - cum_conns: - type: integer - x-nullable: true - cum_req: - type: integer - x-nullable: true - cum_ssl_conns: - type: integer - x-nullable: true - curr_conns: - type: integer - x-nullable: true - curr_ssl_conns: - type: integer - x-nullable: true - dropped_logs: - type: integer - x-nullable: true - failed_resolutions: - type: integer - x-nullable: true - hard_max_conn: - type: integer - x-nullable: true - idle_pct: - type: integer - x-nullable: true - jobs: - type: integer - x-nullable: true - listeners: - type: integer - x-nullable: true - max_conn: - type: integer - x-nullable: true - max_conn_rate: - type: integer - x-nullable: true - max_pipes: - type: integer - x-nullable: true - max_sess_rate: - type: integer - x-nullable: true - max_sock: - type: integer - x-nullable: true - max_ssl_conns: - type: integer - x-nullable: true - max_ssl_rate: - type: integer - x-nullable: true - max_zlib_mem_usage: - type: integer - x-nullable: true - mem_max_mb: - type: integer - x-nullable: true - nbthread: - description: Number of threads - type: integer - x-display-name: Number of Threads - x-nullable: true - node: - type: string - pid: - description: Process id of the replying worker process - type: integer - x-display-name: PID - x-nullable: true - pipes_free: - type: integer - x-nullable: true - pipes_used: - type: integer - x-nullable: true - pool_alloc_mb: - type: integer - x-nullable: true - pool_failed: - type: integer - x-nullable: true - pool_used_mb: - type: integer - x-nullable: true - process_num: - description: Process number - type: integer - x-display-name: Process Number - x-nullable: true - processes: - description: Number of spawned processes - type: integer - x-display-name: Number of processes - x-nullable: true - release_date: - description: HAProxy version release date - format: date - type: string - run_queue: - type: integer - x-nullable: true - sess_rate: - type: integer - x-nullable: true - sess_rate_limit: - type: integer - x-nullable: true - ssl_backend_key_rate: - type: integer - x-nullable: true - ssl_backend_max_key_rate: - type: integer - x-nullable: true - ssl_cache_lookups: - type: integer - x-nullable: true - ssl_cache_misses: - type: integer - x-nullable: true - ssl_frontend_key_rate: - type: integer - x-nullable: true - ssl_frontend_max_key_rate: - type: integer - x-nullable: true - ssl_frontend_session_reuse: - type: integer - x-nullable: true - ssl_rate: - type: integer - x-nullable: true - ssl_rate_limit: - type: integer - x-nullable: true - stopping: - type: integer - x-nullable: true - tasks: - type: integer - x-nullable: true - total_bytes_out: - type: integer - x-nullable: true - ulimit_n: - type: integer - x-nullable: true - unstoppable: - type: integer - x-nullable: true - uptime: - description: HAProxy uptime in s - type: integer - x-nullable: true - version: - description: HAProxy version string - type: string - zlib_mem_usage: - type: integer - x-nullable: true - type: object - x-go-name: ProcessInfoItem - runtimeAPI: - type: string - type: object - x-go-name: ProcessInfo - title: HAProxy Information - type: array - transaction: - description: HAProxy configuration transaction - example: - _version: 2 - id: 273e3385-2d0c-4fb1-aa27-93cbb31ff203 - status: in_progress - properties: - _version: + x-dependency: + type: backend + bck: type: integer - id: - pattern: ^[^\s]+$ - type: string - status: - enum: - - failed - - in_progress - - success - type: string - title: Configuration transaction - type: object - transactions: - title: Transactions array - description: Configuration transactions array - type: array - items: - $ref: "#/definitions/transaction" - info: - description: General API, OS and hardware information - example: - api: - build_date: "2019-08-21T17:31:56.000Z" - version: v1.2.1 45a3288.dev - system: - cpu_info: - model: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz - num_cpus: 4 - hostname: test - mem_info: - dataplaneapi_memory: 44755536 - free_memory: 5790642176 - total_memory: 16681517056 - os_string: 'Linux 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019' - time: 1566401525 - uptime: 87340 - properties: - api: - properties: - build_date: - description: HAProxy Dataplane API build date - format: date-time - type: string - version: - description: HAProxy Dataplane API version string - type: string - type: object - system: - properties: - cpu_info: - properties: - model: - type: string - num_cpus: - description: Number of logical CPUs - type: integer - type: object - hostname: - description: Hostname where the HAProxy is running - type: string - mem_info: - properties: - dataplaneapi_memory: - type: integer - free_memory: - type: integer - total_memory: - type: integer - type: object - os_string: - description: OS string - type: string - time: - description: Current time in milliseconds since Epoch. - type: integer - uptime: - description: System uptime - type: integer - x-nullable: true - type: object - title: Information - type: object - reload: - description: HAProxy reload - example: - id: 2019-01-03-44 - status: in_progress - properties: - id: - pattern: ^\d{4}-\d{2}-\d{2}-\d+$ - type: string - reload_timestamp: + x-dependency: + type: + - server + - backend + x-nullable: true + bin: type: integer - response: - type: string - status: - enum: - - failed - - in_progress - - succeeded - type: string - title: HAProxy reload - type: object - reloads: - title: HAProxy Reloads Array - description: HAProxy reloads array - type: array - items: - $ref: "#/definitions/reload" - runtime_server: - description: Runtime transient server properties - example: - address: 127.0.0.5 - admin_state: up - operational_state: up - port: 80 - server_id: 1 - server_name: web_server - properties: - address: - pattern: ^[^\s]+$ - readOnly: true - type: string - x-nullable: false - admin_state: - enum: - - ready - - maint - - drain - type: string - id: - readOnly: true - type: string - name: - readOnly: true + x-nullable: true + bout: + type: integer + x-nullable: true + check_code: + type: integer + x-dependency: + type: server + x-nullable: true + check_desc: type: string - operational_state: + x-dependency: + type: server + check_duration: + type: integer + x-dependency: + type: server + x-nullable: true + check_fall: + type: integer + x-dependency: + type: server + x-nullable: true + check_health: + type: integer + x-dependency: + type: server + x-nullable: true + check_rise: + type: integer + x-dependency: + type: server + x-nullable: true + check_status: enum: - - up - - down - - stopping + - UNK + - INI + - SOCKERR + - L40K + - L4TOUT + - L4CON + - L6OK + - L6TOUT + - L6RSP + - L7OK + - L7OKC + - L7TOUT + - L7RSP + - L7STS type: string - port: - maximum: 65535 - minimum: 0 - readOnly: true + x-dependency: + type: server + chkdown: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - title: Runtime Server - type: object - runtime_servers: - title: HAProxy Runtime Servers Array - description: HAProxy runtime servers array - type: array - items: - $ref: "#/definitions/runtime_server" - stick_table: - description: Stick Table Information - properties: - fields: - items: - properties: - field: - enum: - - server_id - - gpc0 - - gpc0_rate - - gpc1 - - gpc1_rate - - conn_cnt - - conn_cur - - conn_rate - - sess_cnt - - sess_rate - - http_req_cnt - - http_req_rate - - http_err_cnt - - http_err_rate - - bytes_in_cnt - - bytes_in_rate - - bytes_out_cnt - - bytes_out_rate - type: string - period: - type: integer - x-dependency: - type: - value: rate - type: - enum: - - rate - - counter - type: string - type: object - x-go-name: StickTableField - type: array - name: - type: string - process: - description: Process number if master-worker mode + chkfail: type: integer + x-dependency: + type: server x-nullable: true - size: + cli_abrt: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - type: - enum: - - ip - - ipv6 - - integer - - string - - binary + comp_byp: + type: integer + x-dependency: + type: + - frontend + - backend + x-nullable: true + comp_in: + type: integer + x-dependency: + type: + - frontend + - backend + x-nullable: true + comp_out: + type: integer + x-dependency: + type: + - frontend + - backend + x-nullable: true + comp_rsp: + type: integer + x-dependency: + type: + - frontend + - backend + x-nullable: true + conn_rate: + type: integer + x-dependency: + type: frontend + x-nullable: true + conn_rate_max: + type: integer + x-dependency: + type: frontend + x-nullable: true + conn_tot: + type: integer + x-dependency: + type: frontend + x-nullable: true + cookie: type: string - used: + x-dependency: + type: + - server + - backend + ctime: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - title: Stick Table - type: object - stick_tables: - title: Stick Tables Array - description: Array of runtime stick tables - type: array - items: - $ref: "#/definitions/stick_table" - stick_table_entry: - description: One entry in stick table - properties: - bytes_in_cnt: + dcon: type: integer + x-dependency: + type: frontend x-nullable: true - bytes_in_rate: + downtime: type: integer + x-dependency: + type: server x-nullable: true - bytes_out_cnt: + dreq: type: integer + x-dependency: + type: + - frontend + - backend x-nullable: true - bytes_out_rate: + dresp: type: integer x-nullable: true - conn_cnt: + dses: type: integer + x-dependency: + type: frontend x-nullable: true - conn_cur: + econ: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - conn_rate: + ereq: type: integer + x-dependency: + type: frontend x-nullable: true - exp: + eresp: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - gpc0: + hanafail: + type: string + x-dependency: + type: server + hrsp_1xx: type: integer x-nullable: true - gpc0_rate: + hrsp_2xx: type: integer x-nullable: true - gpc1: + hrsp_3xx: type: integer x-nullable: true - gpc1_rate: + hrsp_4xx: type: integer x-nullable: true - http_err_cnt: + hrsp_5xx: type: integer x-nullable: true - http_err_rate: + hrsp_other: type: integer x-nullable: true - http_req_cnt: + iid: type: integer x-nullable: true - http_req_rate: + intercepted: type: integer + x-dependency: + type: + - frontend + - backend x-nullable: true - id: - type: string - key: - type: string - server_id: + lastchg: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - sess_cnt: + lastsess: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - sess_rate: + lbtot: type: integer + x-dependency: + type: + - server + - backend x-nullable: true - use: - type: boolean - title: Stick Table Entry - type: object - stick_table_entries: - title: Stick Tables Entries - description: Entries of one runtime stick table - type: array - items: - $ref: "#/definitions/stick_table_entry" - balance: - properties: - algorithm: + mode: enum: - - roundrobin - - static-rr - - leastconn - - first - - source - - uri - - url_param - - hdr - - random - - rdp-cookie - type: string - hdr_name: - pattern: ^[^\s]+$ + - tcp + - http + - health + - unknown type: string + pid: + type: integer + x-nullable: true + qcur: + type: integer x-dependency: - algorithm: - required: true - value: hdr - x-display-name: Header Name - hdr_use_domain_only: - type: boolean + type: + - server + - backend + x-nullable: true + qlimit: + type: integer x-dependency: - algorithm: - value: hdr - x-display-name: Header Use Domain Only - random_draws: + type: + - server + - backend + x-nullable: true + qmax: type: integer x-dependency: - algorithm: - value: random - x-display-name: Random Draws - x-nullable: false - rdp_cookie_name: - pattern: ^[^\s]+$ - type: string + type: + - server + - backend + x-nullable: true + qtime: + type: integer x-dependency: - algorithm: - value: rdp-cookie - x-display-name: Rdp Cookie Name - uri_depth: - pattern: ^[^\d+$] + type: + - server + - backend + x-nullable: true + rate: + type: integer + x-nullable: true + rate_lim: type: integer x-dependency: - algorithm: - value: uri - x-display-name: Uri Depth - uri_len: - pattern: ^[^\d+$] + type: frontend + x-nullable: true + rate_max: + type: integer + x-nullable: true + req_rate: type: integer x-dependency: - algorithm: - value: uri - x-display-name: Uri Len - uri_whole: - type: boolean + type: frontend + x-nullable: true + req_rate_max: + type: integer x-dependency: - algorithm: - value: uri - x-display-name: Uri Whole - url_param: - pattern: ^[^\s]+$ + type: frontend + x-nullable: true + req_tot: + type: integer + x-dependency: + type: + - frontend + - backend + x-nullable: true + rtime: + type: integer + x-dependency: + type: + - server + - backend + x-nullable: true + scur: + type: integer + x-nullable: true + sid: + type: integer + x-dependency: + type: server + x-nullable: true + slim: + type: integer + x-nullable: true + smax: + type: integer + x-nullable: true + srv_abrt: + type: integer + x-dependency: + type: + - server + - backend + x-nullable: true + status: + enum: + - UP + - DOWN + - NOLB + - MAINT + - no check + type: string + stot: + type: integer + x-nullable: true + throttle: + type: integer + x-dependency: + type: server + x-nullable: true + tracked: + type: string + x-dependency: + type: server + ttime: + type: integer + x-dependency: + type: + - server + - backend + x-nullable: true + weight: + type: integer + x-dependency: + type: + - server + - backend + x-nullable: true + wredis: + type: integer + x-dependency: + type: + - server + - backend + x-nullable: true + wretr: + type: integer + x-dependency: + type: + - server + - backend + x-nullable: true + type: object + native_stats_collection: + description: Stats from one runtime API + properties: + error: + type: string + runtimeAPI: + type: string + stats: + items: + $ref: '#/definitions/native_stat' + type: array + title: Stats collection + type: object + stats_options: + properties: + stats_enable: + type: boolean + x-display-name: Stats Enable + stats_hide_version: + type: boolean + x-display-name: Stats Hide Version + stats_maxconn: + minimum: 1 + type: integer + stats_refresh_delay: + type: integer + x-nullable: true + stats_show_desc: + type: string + x-nullable: true + stats_show_legends: + type: boolean + x-display-name: Stats Show Legends + stats_show_node_name: + pattern: ^[^\s]+$ + type: string + x-nullable: true + stats_uri_prefix: + pattern: ^[^\s]+$ + type: string + type: object + error: + additionalProperties: + type: string + description: API Error + properties: + code: + type: integer + x-nullable: true + message: + type: string + x-nullable: true + required: + - code + - message + title: Error + type: object + endpoint: + description: Endpoint definition + properties: + description: + description: Endpoint description + type: string + title: + description: Endpoint title + type: string + url: + description: Path to the endpoint + type: string + title: Endpoint + type: object + endpoints: + title: Endpoints Array + description: Collection of endpoints + type: array + items: + $ref: '#/definitions/endpoint' + process_infos: + description: General HAProxy process information + items: + $ref: '#/definitions/process_info' + title: HAProxy Information + type: array + process_info: + properties: + error: + type: string + info: + $ref: '#/definitions/process_info_item' + runtimeAPI: + type: string + type: object + process_info_item: + properties: + active_peers: + type: integer + x-nullable: true + busy_polling: + type: integer + x-nullable: true + bytes_out_rate: + type: integer + x-nullable: true + compress_bps_in: + type: integer + x-nullable: true + compress_bps_out: + type: integer + x-nullable: true + compress_bps_rate_lim: + type: integer + x-nullable: true + conn_rate: + type: integer + x-nullable: true + conn_rate_limit: + type: integer + x-nullable: true + connected_peers: + type: integer + x-nullable: true + cum_conns: + type: integer + x-nullable: true + cum_req: + type: integer + x-nullable: true + cum_ssl_conns: + type: integer + x-nullable: true + curr_conns: + type: integer + x-nullable: true + curr_ssl_conns: + type: integer + x-nullable: true + dropped_logs: + type: integer + x-nullable: true + failed_resolutions: + type: integer + x-nullable: true + hard_max_conn: + type: integer + x-nullable: true + idle_pct: + type: integer + x-nullable: true + jobs: + type: integer + x-nullable: true + listeners: + type: integer + x-nullable: true + max_conn: + type: integer + x-nullable: true + max_conn_rate: + type: integer + x-nullable: true + max_pipes: + type: integer + x-nullable: true + max_sess_rate: + type: integer + x-nullable: true + max_sock: + type: integer + x-nullable: true + max_ssl_conns: + type: integer + x-nullable: true + max_ssl_rate: + type: integer + x-nullable: true + max_zlib_mem_usage: + type: integer + x-nullable: true + mem_max_mb: + type: integer + x-nullable: true + nbthread: + description: Number of threads + type: integer + x-display-name: Number of Threads + x-nullable: true + node: + type: string + pid: + description: Process id of the replying worker process + type: integer + x-display-name: PID + x-nullable: true + pipes_free: + type: integer + x-nullable: true + pipes_used: + type: integer + x-nullable: true + pool_alloc_mb: + type: integer + x-nullable: true + pool_failed: + type: integer + x-nullable: true + pool_used_mb: + type: integer + x-nullable: true + process_num: + description: Process number + type: integer + x-display-name: Process Number + x-nullable: true + processes: + description: Number of spawned processes + type: integer + x-display-name: Number of processes + x-nullable: true + release_date: + description: HAProxy version release date + format: date + type: string + run_queue: + type: integer + x-nullable: true + sess_rate: + type: integer + x-nullable: true + sess_rate_limit: + type: integer + x-nullable: true + ssl_backend_key_rate: + type: integer + x-nullable: true + ssl_backend_max_key_rate: + type: integer + x-nullable: true + ssl_cache_lookups: + type: integer + x-nullable: true + ssl_cache_misses: + type: integer + x-nullable: true + ssl_frontend_key_rate: + type: integer + x-nullable: true + ssl_frontend_max_key_rate: + type: integer + x-nullable: true + ssl_frontend_session_reuse: + type: integer + x-nullable: true + ssl_rate: + type: integer + x-nullable: true + ssl_rate_limit: + type: integer + x-nullable: true + stopping: + type: integer + x-nullable: true + tasks: + type: integer + x-nullable: true + total_bytes_out: + type: integer + x-nullable: true + ulimit_n: + type: integer + x-nullable: true + unstoppable: + type: integer + x-nullable: true + uptime: + description: HAProxy uptime in s + type: integer + x-nullable: true + version: + description: HAProxy version string + type: string + zlib_mem_usage: + type: integer + x-nullable: true + type: object + transaction: + description: HAProxy configuration transaction + example: + _version: 2 + id: 273e3385-2d0c-4fb1-aa27-93cbb31ff203 + status: in_progress + properties: + _version: + type: integer + id: + pattern: ^[^\s]+$ + type: string + status: + enum: + - failed + - in_progress + - success + type: string + title: Configuration transaction + type: object + transactions: + title: Transactions array + description: Configuration transactions array + type: array + items: + $ref: "#/definitions/transaction" + spoe_transaction: + description: SPOE configuration transaction + example: + _version: 2 + id: 273e3385-2d0c-4fb1-aa27-93cbb31ff203 + status: in_progress + properties: + _version: + type: integer + id: + pattern: ^[^\s]+$ + type: string + status: + enum: + - failed + - in_progress + - success + type: string + title: SPOE configuration transaction + type: object + spoe_transactions: + title: SPOE Transactions array + description: SPOE Configuration transactions array + type: array + items: + $ref: "#/definitions/spoe_transaction" + info: + description: General API, OS and hardware information + example: + api: + build_date: "2019-08-21T17:31:56.000Z" + version: v1.2.1 45a3288.dev + system: + cpu_info: + model: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz + num_cpus: 4 + hostname: test + mem_info: + dataplaneapi_memory: 44755536 + free_memory: 5790642176 + total_memory: 16681517056 + os_string: 'Linux 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019' + time: 1566401525 + uptime: 87340 + properties: + api: + properties: + build_date: + description: HAProxy Dataplane API build date + format: date-time + type: string + version: + description: HAProxy Dataplane API version string + type: string + type: object + system: + properties: + cpu_info: + properties: + model: + type: string + num_cpus: + description: Number of logical CPUs + type: integer + type: object + hostname: + description: Hostname where the HAProxy is running + type: string + mem_info: + properties: + dataplaneapi_memory: + type: integer + free_memory: + type: integer + total_memory: + type: integer + type: object + os_string: + description: OS string + type: string + time: + description: Current time in milliseconds since Epoch. + type: integer + uptime: + description: System uptime + type: integer + x-nullable: true + type: object + title: Information + type: object + reload: + description: HAProxy reload + example: + id: 2019-01-03-44 + status: in_progress + properties: + id: + pattern: ^\d{4}-\d{2}-\d{2}-\d+$ + type: string + reload_timestamp: + type: integer + response: + type: string + status: + enum: + - failed + - in_progress + - succeeded + type: string + title: HAProxy reload + type: object + reloads: + title: HAProxy Reloads Array + description: HAProxy reloads array + type: array + items: + $ref: "#/definitions/reload" + runtime_server: + description: Runtime transient server properties + example: + address: 127.0.0.5 + admin_state: ready + operational_state: up + port: 80 + server_id: 1 + server_name: web_server + properties: + address: + pattern: ^[^\s]+$ + readOnly: true + type: string + x-nullable: false + admin_state: + enum: + - ready + - maint + - drain + type: string + id: + readOnly: true + type: string + name: + readOnly: true + type: string + operational_state: + enum: + - up + - down + - stopping + type: string + port: + maximum: 65535 + minimum: 1 + readOnly: true + type: integer + x-nullable: true + title: Runtime Server + type: object + runtime_servers: + title: HAProxy Runtime Servers Array + description: HAProxy runtime servers array + type: array + items: + $ref: "#/definitions/runtime_server" + stick_table: + description: Stick Table Information + properties: + fields: + items: + properties: + field: + enum: + - server_id + - gpc0 + - gpc0_rate + - gpc1 + - gpc1_rate + - gpt0 + - conn_cnt + - conn_cur + - conn_rate + - sess_cnt + - sess_rate + - http_req_cnt + - http_req_rate + - http_err_cnt + - http_err_rate + - bytes_in_cnt + - bytes_in_rate + - bytes_out_cnt + - bytes_out_rate + type: string + period: + type: integer + x-dependency: + type: + value: rate + type: + enum: + - rate + - counter + type: string + type: object + x-go-name: StickTableField + type: array + name: + type: string + process: + description: Process number if master-worker mode + type: integer + x-nullable: true + size: + type: integer + x-nullable: true + type: + enum: + - ip + - ipv6 + - integer + - string + - binary + type: string + used: + type: integer + x-nullable: true + title: Stick Table + type: object + stick_tables: + title: Stick Tables Array + description: Array of runtime stick tables + type: array + items: + $ref: "#/definitions/stick_table" + stick_table_entry: + description: One entry in stick table + properties: + bytes_in_cnt: + type: integer + x-nullable: true + bytes_in_rate: + type: integer + x-nullable: true + bytes_out_cnt: + type: integer + x-nullable: true + bytes_out_rate: + type: integer + x-nullable: true + conn_cnt: + type: integer + x-nullable: true + conn_cur: + type: integer + x-nullable: true + conn_rate: + type: integer + x-nullable: true + exp: + type: integer + x-nullable: true + gpc0: + type: integer + x-nullable: true + gpc0_rate: + type: integer + x-nullable: true + gpc1: + type: integer + x-nullable: true + gpc1_rate: + type: integer + x-nullable: true + gpt0: + type: integer + x-nullable: true + http_err_cnt: + type: integer + x-nullable: true + http_err_rate: + type: integer + x-nullable: true + http_req_cnt: + type: integer + x-nullable: true + http_req_rate: + type: integer + x-nullable: true + id: + type: string + key: + type: string + server_id: + type: integer + x-nullable: true + sess_cnt: + type: integer + x-nullable: true + sess_rate: + type: integer + x-nullable: true + use: + type: boolean + title: Stick Table Entry + type: object + stick_table_entries: + title: Stick Tables Entries + description: Entries of one runtime stick table + type: array + items: + $ref: "#/definitions/stick_table_entry" + cluster_settings: + description: Settings related to a cluster. + properties: + bootstrap_key: + type: string + cluster: + properties: + address: + pattern: ^[^\s]+$ + readOnly: true + type: string + api_base_path: + readOnly: true + type: string + description: + readOnly: true + type: string + name: + readOnly: true + type: string + port: + maximum: 65535 + minimum: 1 + readOnly: true + type: integer + x-nullable: true + title: Cluster controller information + type: object + mode: + enum: + - single + - cluster + type: string + status: + enum: + - active + - unreachable + - waiting_approval + readOnly: true + type: string + title: Cluster Settings + type: object + map: + description: Map File + properties: + description: + type: string + file: + type: string + id: + type: string + storage_name: + type: string + title: Map File + type: object + maps: + title: Map Files Array + description: Array of runtime map files + type: array + items: + $ref: "#/definitions/map" + map_entry: + description: One Map Entry + properties: + id: + readOnly: true + type: string + key: + type: string + value: + type: string + title: One Map Entry + type: object + map_entries: + title: Maps Entries + description: Entries of one runtime map + type: array + items: + $ref: "#/definitions/map_entry" + ssl_certificate: + description: A file containing one or more SSL/TLS certificates and keys + properties: + description: + type: string + file: + type: string + storage_name: + type: string + title: SSL File + type: object + ssl_certificates: + title: SSL Files Array + description: Array of ssl certificate files + type: array + items: + $ref: "#/definitions/ssl_certificate" + ssl_cert_entry: + description: One SSL/TLS certificate + properties: + algorithm: + type: string + chain_issuer: + type: string + chain_subject: + type: string + issuer: + type: string + not_after: + format: date + type: string + not_before: + format: date + type: string + serial: + type: string + sha1_finger_print: + type: string + status: + type: string + storage_name: + type: string + subject: + type: string + subject_alternative_names: + items: + type: string + type: array + title: One SSL Certificate Entry + type: object + ssl_cert_entries: + title: SSL Certificate Entries + description: Array of entries of runtime SSL Certificate Entry + type: array + items: + $ref: "#/definitions/ssl_cert_entry" + ssl_crt_list: + description: One SSL/TLS certificate + properties: + file: + type: string + title: crt-list + type: object + ssl_crt_lists: + title: SSL crt-list + description: Array of entries of runtime crt-list + type: array + items: + $ref: "#/definitions/ssl_crt_list" + ssl_crt_list_entry: + description: One SSL/TLS certificate + properties: + file: + type: string + line_number: + type: string + sni_filters: + items: + type: string + type: array + ssl_bind_config: + type: string + title: One crt-list Entry + type: object + ssl_crt_list_entries: + title: SSL Certificate Entries + description: Array of entries of runtime SSL Certificate Entry + type: array + items: + $ref: "#/definitions/ssl_crt_list_entry" + acl_file: + description: ACL File + properties: + description: + type: string + id: + type: string + storage_name: + type: string + title: ACL File + type: object + acl_files: + title: ACL Files Array + description: Array of runtime acl files + type: array + items: + $ref: "#/definitions/acl_file" + acl_file_entry: + description: One ACL File Entry + properties: + id: + readOnly: true + type: string + value: + type: string + title: One ACL File Entry + type: object + acl_files_entries: + title: ACL Files Entries + description: Array of entries of one runtime acl file + type: array + items: + $ref: "#/definitions/acl_file_entry" + balance: + properties: + algorithm: + enum: + - roundrobin + - static-rr + - leastconn + - first + - source + - uri + - url_param + - hdr + - random + - rdp-cookie + type: string + hdr_name: + type: string + x-dependency: + algorithm: + required: true + value: hdr + x-display-name: Header Name + hdr_use_domain_only: + type: boolean + x-dependency: + algorithm: + value: hdr + x-display-name: Header Use Domain Only + random_draws: + type: integer + x-dependency: + algorithm: + value: random + x-display-name: Random Draws + x-nullable: false + rdp_cookie_name: + pattern: ^[^\s]+$ + type: string + x-dependency: + algorithm: + value: rdp-cookie + x-display-name: Rdp Cookie Name + uri_depth: + pattern: ^[^\d+$] + type: integer + x-dependency: + algorithm: + value: uri + x-display-name: Uri Depth + uri_len: + pattern: ^[^\d+$] + type: integer + x-dependency: + algorithm: + value: uri + x-display-name: Uri Len + uri_whole: + type: boolean + x-dependency: + algorithm: + value: uri + x-display-name: Uri Whole + url_param: + pattern: ^[^\s]+$ + type: string + x-dependency: + algorithm: + required: true + value: url_param + x-display-name: Url Param + url_param_check_post: + type: integer + x-dependency: + algorithm: + value: url_param + x-display-name: Url Param Check Post + url_param_max_wait: + pattern: ^[^\d+$] + type: integer + x-dependency: + algorithm: + value: url_param + x-display-name: Url Param Max Weight + required: + - algorithm + type: object + forwardfor: + properties: + enabled: + enum: + - enabled + type: string + except: + pattern: ^[^\s]+$ + type: string + header: + pattern: ^[^\s]+$ + type: string + ifnone: + type: boolean + required: + - enabled + type: object + x-display-name: ForwardFor + default_server: + properties: + address: + pattern: ^[^\s]+$ + type: string + x-nullable: false + agent-addr: + pattern: ^[^\s]+$ + type: string + agent-check: + enum: + - enabled + - disabled + type: string + x-dependency: + agent-port: + required: true + agent-inter: + type: integer + x-nullable: true + agent-port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + agent-send: + type: string + allow_0rtt: + type: boolean + alpn: + pattern: ^[^\s]+$ + type: string + x-display-name: ALPN Protocols + backup: + enum: + - enabled + - disabled + type: string + check: + enum: + - enabled + - disabled + type: string + check-sni: + pattern: ^[^\s]+$ + type: string + check-ssl: + enum: + - enabled + - disabled + type: string + check_alpn: + pattern: ^[^\s]+$ + type: string + x-display-name: Protocols + check_proto: + pattern: ^[^\s]+$ + type: string + x-display-name: Name + check_via_socks4: + enum: + - enabled + - disabled + type: string + ciphers: + type: string + x-dependency: + ssl: + value: enabled + ciphersuites: + type: string + x-dependency: + ssl: + value: enabled + cookie: + pattern: ^[^\s]+$ + type: string + crl_file: + type: string + x-dependency: + ssl: + value: enabled + downinter: + type: integer + x-nullable: true + error_limit: + type: integer + x-display-name: Error count + fall: + type: integer + x-display-name: Nr. of consecutive failed checks + x-nullable: true + fastinter: + type: integer + x-nullable: true + force_sslv3: + enum: + - enabled + - disabled + type: string + force_tlsv10: + enum: + - enabled + - disabled + type: string + force_tlsv11: + enum: + - enabled + - disabled + type: string + force_tlsv12: + enum: + - enabled + - disabled + type: string + force_tlsv13: + enum: + - enabled + - disabled + type: string + health_check_port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + init-addr: + pattern: ^[^\s]+$ + type: string + inter: + type: integer + x-nullable: true + log_proto: + enum: + - legacy + - octet-count + type: string + max_reuse: + type: integer + x-nullable: true + maxconn: + type: integer + x-display-name: Max Concurrent Connections + x-nullable: true + maxqueue: + type: integer + x-display-name: Max Number of Connections + x-nullable: true + minconn: + type: integer + x-nullable: true + name: + pattern: ^[^\s]+$ + type: string + x-nullable: false + namespace: + type: string + no_sslv3: + enum: + - enabled + - disabled + type: string + no_tlsv10: + enum: + - enabled + - disabled + type: string + no_tlsv11: + enum: + - enabled + - disabled + type: string + no_tlsv12: + enum: + - enabled + - disabled + type: string + no_tlsv13: + enum: + - enabled + - disabled + type: string + no_verifyhost: + enum: + - enabled + - disabled + type: string + npn: + type: string + x-dependency: + ssl: + value: enabled + observe: + enum: + - layer4 + - layer7 + type: string + x-dependency: + ssl: + value: enabled + on-error: + enum: + - fastinter + - fail-check + - sudden-death + - mark-down + type: string + on-marked-down: + enum: + - shutdown-sessions + type: string + on-marked-up: + enum: + - shutdown-backup-sessions + type: string + pool_low_conn: + type: integer + x-nullable: true + pool_max_conn: + type: integer + x-nullable: true + pool_purge_delay: + type: integer + x-nullable: true + port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + proto: + pattern: ^[^\s]+$ + type: string + proxy-v2-options: + items: + enum: + - ssl + - cert-cn + - ssl-cipher + - cert-sig + - cert-key + - authority + - crc32c + - unique-id + type: string + type: array + redir: + type: string + x-display-name: Prefix + resolve-net: + pattern: ^[^\s]+$ + type: string + x-dependency: + resolvers: + required: true + resolve-prefer: + enum: + - ipv4 + - ipv6 + pattern: ^[^\s]+$ + type: string + x-dependency: + resolvers: + required: true + resolve_opts: + pattern: ^[^,\s][^\,]*[^,\s]*$ + type: string + resolvers: + pattern: ^[^\s]+$ + type: string + x-dynamic-enum: + operation: getResolvers + property: name + rise: + type: integer + x-nullable: true + send-proxy: + enum: + - enabled + - disabled + type: string + send-proxy-v2: + enum: + - enabled + - disabled + type: string + send_proxy_v2_ssl: + enum: + - enabled + - disabled + type: string + send_proxy_v2_ssl_cn: + enum: + - enabled + - disabled + type: string + slowstart: + type: integer + x-nullable: true + sni: + pattern: ^[^\s]+$ + type: string + socks4: + pattern: ^[^\s]+$ + type: string + x-dependency: + check-via-socks4: + required: true + source: + type: string + ssl: + enum: + - enabled + - disabled + type: string + ssl_certificate: + pattern: ^[^\s]+$ + type: string + x-dependency: + ssl: + value: enabled + ssl_max_ver: + enum: + - SSLv3 + - TLSv1.0 + - TLSv1.1 + - TLSv1.2 + - TLSv1.3 + type: string + ssl_min_ver: + enum: + - SSLv3 + - TLSv1.0 + - TLSv1.1 + - TLSv1.2 + - TLSv1.3 + type: string + ssl_reuse: + enum: + - enabled + - disabled + type: string + stick: + enum: + - enabled + - disabled + type: string + tcp_ut: + type: integer + tfo: + enum: + - enabled + - disabled + type: string + tls_tickets: + enum: + - enabled + - disabled + type: string + x-dependency: + ssl: + value: enabled + track: + type: string + verify: + enum: + - none + - required + type: string + x-dependency: + ssl: + value: enabled + verifyhost: + type: string + x-dependency: + ssl: + value: enabled + verify: + value: required + weight: + type: integer + x-nullable: true + title: Default Server + type: object + httpchk_params: + properties: + method: + enum: + - HEAD + - PUT + - POST + - GET + - TRACE + - PATCH + type: string + uri: + pattern: ^[^\s]+$ + type: string + version: + pattern: ^[^\s]+$ + type: string + type: object + x-display-name: HTTP Check + http-check: + properties: + exclamation_mark: + type: boolean + x-dependency: + type: + value: expect + x-display-name: Expect Exclamation Mark + match: + enum: + - status + - rstatus + - string + - rstring + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: expect + x-display-name: Expect Match + pattern: + pattern: ^[^\s]+$ + type: string + x-dependency: + type: + required: true + value: expect + x-display-name: Expect Pattern + type: + enum: + - disable-on-404 + - expect + - send-state + type: string + required: + - type + type: object + redispatch: + properties: + enabled: + enum: + - enabled + - disabled + type: string + interval: + type: integer + x-nullable: false + required: + - enabled + type: object + errorfile: + properties: + code: + enum: + - 200 + - 400 + - 403 + - 405 + - 408 + - 425 + - 429 + - 500 + - 502 + - 503 + - 504 + type: integer + file: + type: string + type: object + x-display-name: Error File + cookie: + properties: + domain: + items: + properties: + value: + pattern: ^[^\s]+$ + type: string + type: object + x-go-name: Domain + type: array + x-go-name: Domains + dynamic: + type: boolean + httponly: + type: boolean + indirect: + type: boolean + maxidle: + pattern: ^[^\d+$] + type: integer + maxlife: + pattern: ^[^\d+$] + type: integer + name: + pattern: ^[^\s]+$ + type: string + nocache: + type: boolean + postonly: + type: boolean + preserve: + type: boolean + secure: + type: boolean + type: + enum: + - rewrite + - insert + - prefix + type: string + required: + - name + type: object + resolver: + description: Runtime DNS configuration + properties: + accepted_payload_size: + maximum: 8192 + minimum: 512 + type: integer + hold_nx: + type: integer + x-nullable: true + hold_obsolete: + type: integer + x-nullable: true + hold_other: + type: integer + x-nullable: true + hold_refused: + type: integer + x-nullable: true + hold_timeout: + type: integer + x-nullable: true + hold_valid: + type: integer + x-nullable: true + name: + pattern: ^[A-Za-z0-9-_.:]+$ + type: string + x-nullable: false + parse-resolv-conf: + type: boolean + resolve_retries: + minimum: 1 + type: integer + timeout_resolve: + type: integer + x-nullable: false + timeout_retry: + type: integer + x-nullable: false + required: + - name + title: Resolver + type: object + resolvers: + title: Resolvers + description: HAProxy resolvers array + type: array + items: + $ref: '#/definitions/resolver' + nameserver: + description: Nameserver used in Runtime DNS configuration + example: + address: 10.0.0.1 + name: ns1 + port: 53 + properties: + address: + pattern: ^[^\s]+$ + type: string + name: + pattern: ^[A-Za-z0-9-_.:]+$ + type: string + x-nullable: false + port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + required: + - name + - address + title: Nameserver + type: object + nameservers: + title: Nameservers + description: Nameservers array + type: array + items: + $ref: '#/definitions/nameserver' + consul: + additionalProperties: false + description: Consul server configuration + example: + address: 127.0.0.1 + enabled: true + id: "0" + port: 90 + retry_timeout: 10 + properties: + address: + pattern: ^[^\s]+$ + type: string + description: + type: string + enabled: + type: boolean + id: + description: Auto generated ID. + pattern: ^[^\s]+$ + type: string + x-nullable: true + name: + type: string + port: + maximum: 65535 + minimum: 1 + type: integer + retry_timeout: + description: Duration in seconds in-between data pulling requests to the consul + server + minimum: 1 + type: integer + server_slots_base: + default: 10 + type: integer + server_slots_growth_increment: + type: integer + server_slots_growth_type: + default: exponential + enum: + - linear + - exponential + type: string + service-blacklist: + items: + pattern: ^[^\s]+$ + type: string + type: array + service-whitelist: + items: + pattern: ^[^\s]+$ + type: string + type: array + token: + pattern: ^[^\s]+$ + type: string + required: + - address + - port + - enabled + - retry_timeout + title: Consul server + type: object + consuls: + title: Consuls + description: Consuls array + type: array + items: + $ref: '#/definitions/consul' + monitor_uri: + type: string + monitor_fail: + properties: + cond: + enum: + - if + - unless + type: string + x-display-name: Condition + cond_test: + type: string + x-dependency: + cond: + required: true + x-display-name: Condition Test + required: + - cond + - cond_test + type: object + smtpchk_params: + properties: + domain: + type: string + hello: + type: string + type: object + mysql_check_params: + properties: + client_version: + enum: + - pre-41 + - post-41 + type: string + username: + type: string + type: object + pgsql_check_params: + properties: + username: + type: string + type: object + spoe_files: + description: SPOE files + items: + type: string + title: SPOE files + type: array + spoe_scope: + description: SPOE scope name + title: SPOE scope + type: string + spoe_scopes: + title: SPOE Scopes + description: All SPOE Scopes + type: array + items: + $ref: "#/definitions/spoe_scope" + spoe_agent: + description: SPOE agent configuration + properties: + async: + enum: + - enabled + - disabled + type: string + continue-on-error: + enum: + - enabled + type: string + dontlog-normal: + enum: + - enabled + - disabled + type: string + engine-name: + type: string + force-set-var: + enum: + - enabled + type: string + groups: + type: string + hello_timeout: + type: integer + idle_timeout: + type: integer + log: + $ref: '#/definitions/log_targets' + max-frame-size: + type: integer + max-waiting-frames: + type: integer + maxconnrate: + type: integer + maxerrrate: + type: integer + messages: + type: string + name: + type: string + option_set-on-error: + pattern: ^[A-Za-z0-9-_.]+$ + type: string + option_set-process-time: + pattern: ^[A-Za-z0-9-_.]+$ + type: string + option_set-total-time: + pattern: ^[A-Za-z0-9-_.]+$ + type: string + option_var-prefix: + pattern: ^[A-Za-z0-9-_.]+$ + type: string + pipelining: + enum: + - enabled + - disabled + type: string + processing_timeout: + type: integer + register-var-names: + type: string + send-frag-payload: + enum: + - enabled + - disabled + type: string + use-backend: + type: string + required: + - name + title: SPOE agent + type: object + spoe_agents: + title: SPOE Agents + description: SPOE Agents of one scope in SPOE file + type: array + items: + $ref: "#/definitions/spoe_agent" + spoe_message: + description: SPOE message section configuration + properties: + acl: + $ref: '#/definitions/acls' + args: + type: string + event: + properties: + cond: + enum: + - if + - unless + type: string + x-display-name: Condition + cond_test: + type: string + x-dependency: + cond: + required: true + x-display-name: Condition Test + name: + enum: + - on-client-session + - on-server-session + - on-frontend-tcp-request + - on-backend-tcp-request + - on-tcp-response + - on-frontend-http-request + - on-backend-http-request + - on-http-response + type: string + required: + - name + type: object + name: + type: string + required: + - name + title: SPOE message + type: object + spoe_messages: + title: SPOE Messages + description: SPOE Messages of one scope in SPOE file + type: array + items: + $ref: "#/definitions/spoe_message" + spoe_group: + description: SPOE group section configuration + properties: + messages: + type: string + name: + type: string + required: + - name + title: SPOE group + type: object + spoe_groups: + title: SPOE Groups + description: SPOE Groups of one scope in SPOE file + type: array + items: + $ref: "#/definitions/spoe_group" +responses: + BadRequest: + description: Bad request + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: true + default: 0 + schema: + $ref: '#/definitions/error' + NotFound: + description: The specified resource was not found + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: true + default: 0 + schema: + $ref: '#/definitions/error' + AlreadyExists: + description: The specified resource already exists + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: true + default: 0 + schema: + $ref: '#/definitions/error' + DefaultError: + description: General Error + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: true + default: 0 + schema: + $ref: '#/definitions/error' +parameters: + transaction_id: + name: transaction_id + in: query + description: ID of the transaction where we want to add the operation. Cannot be used when version is specified. + type: string + required: false + x-nullable: false + version: + name: version + in: query + description: Version used for checking configuration version. Cannot be used when transaction is specified, transaction has it's own version. + type: integer + required: false + x-nullable: false + force_reload: + name: force_reload + in: query + description: If set, do a force reload, do not wait for the configured reload-delay. Cannot be used when transaction is specified, as changes in transaction are not applied directly to configuration. + type: boolean + required: false + default: false +securityDefinitions: + basic_auth: + type: basic +basePath: /v2 +schemes: + - http +consumes: + - application/json +produces: + - application/json +tags: + - name: Discovery + description: API autodiscover endpoints + - name: Information + - name: Specification + - name: Transactions + description: | + Managing transactions. Configuration changes can be grouped in the transaction. You start the + transaction with trasactions POST, and call the configuration changes you need with parameter + transaction_id. When you want to commit the transaction, you call the transactions PUT and all changes + in that transaction is commited. If you call a configuration change without the transaction_id, + transaction mechanism is implicitly called with one operation in transaction. + - name: Reloads + description: | + Checking reload success. To avoid constant reloading we reload in intervals that are configurable when + with reload-delay option. When a change to configuration is made and force_reload url query string + parameter is false we issue a request for reload, and return the reload ID in response header. You can + then use reloads endpoints to check the status of that reload ID. If force_reload is true, we override all + of this and reload immediately. + - name: Sites + description: | + Managing sites (simple configuration mode). Sites are considered as one frontend with multiple backends + connected to it via default_backend or use-backend directives. + - name: Stats + description: Stats container + - name: Global + description: Managing global configuration (advanced mode) + - name: Defaults + description: Managing defaults configuration (advanced mode) + - name: Frontend + description: Managing frontend configuration (advanced mode) + - name: Backend + description: Managing backend configurations (advanced mode) + - name: Bind + description: Managing frontend bind configurations (advanced mode) + - name: Server + description: Managing backend server configurations (advanced mode) + - name: Configuration + description: Raw HAProxy configuration management (advanced mode) + - name: TCPRequestRule + - name: HTTPRequestRule + - name: HTTPResponseRule + - name: BackendSwitchingRule + - name: ServerSwitchingRule + - name: TCPResponseRule + - name: Filter + - name: StickRule + - name: StickTable + - name: LogTarget + - name: ACL + - name: Resolver + - name: Nameserver + - name: Peer + - name: PeerEntry + - name: Cluster + - name: Maps + - name: SpecificationOpenapiv3 + - name: ServiceDiscovery + - name: Spoe + - name: SpoeTransactions +security: + - basic_auth: [] +paths: + /: + get: + description: Returns a list of root endpoints. + operationId: getAPIEndpoints + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/endpoints' + default: + $ref: '#/responses/DefaultError' + summary: Return list of root endpoints + tags: + - Discovery + /specification: + get: + description: Return Data Plane API OpenAPI specification + operationId: getSpecification + produces: + - application/json + responses: + "200": + description: Success + schema: + type: object + default: + $ref: '#/responses/DefaultError' + summary: Data Plane API Specification + tags: + - Specification + /specification_openapiv3: + get: + description: Return Data Plane API OpenAPI v3 specification + operationId: getOpenapiv3Specification + produces: + - application/json + responses: + "200": + description: Success + schema: + type: object + default: + $ref: '#/responses/DefaultError' + summary: Data Plane API v3 Specification + tags: + - SpecificationOpenapiv3 + /info: + get: + description: Return API, hardware and OS information + operationId: getInfo + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/info' + default: + $ref: '#/responses/DefaultError' + summary: Return API, hardware and OS information + tags: + - Information + /cluster: + get: + description: Returns cluster data + operationId: getCluster + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/cluster_settings' + default: + $ref: '#/responses/DefaultError' + summary: Return cluster data + tags: + - Discovery + post: + description: Post cluster settings + operationId: postCluster + parameters: + - in: body + name: data + required: true + schema: + $ref: '#/definitions/cluster_settings' + - description: In case of moving to single mode do we keep or clean configuration + enum: + - keep + in: query + name: configuration + required: false + type: string + - $ref: '#/parameters/version' + responses: + "200": + description: Cluster settings changed + schema: + $ref: '#/definitions/cluster_settings' + "400": + $ref: '#/responses/BadRequest' + default: + $ref: '#/responses/DefaultError' + summary: Post cluster settings + tags: + - Cluster + /cluster/certificate: + post: + description: Initiates a certificate refresh + operationId: initiateCertificateRefresh + responses: + "200": + description: refresh activated + "403": + description: refresh not possible + default: + $ref: '#/responses/DefaultError' + summary: Initiates a certificate refresh + tags: + - Cluster + /service_discovery/consul: + get: + description: Returns all configured Consul servers. + operationId: getConsuls + responses: + "200": + description: Successful operation + schema: + properties: + data: + $ref: '#/definitions/consuls' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of all configured Consul servers + tags: + - ServiceDiscovery + post: + description: Adds a new Consul server. + operationId: createConsul + parameters: + - in: body + name: data + required: true + schema: + $ref: '#/definitions/consul' + responses: + "201": + description: Consul created + schema: + $ref: '#/definitions/consul' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a new Consul server + tags: + - ServiceDiscovery + /service_discovery/consul/{id}: + delete: + description: Deletes a Consul server configuration by it's id. + operationId: deleteConsul + parameters: + - description: Consul server Index + in: path + name: id + required: true + type: string + responses: + "204": + description: Consul server deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a Consul server + tags: + - ServiceDiscovery + get: + description: Returns one Consul server configuration by it's id. + operationId: getConsul + parameters: + - description: Consul server id + in: path + name: id + required: true + type: string + responses: + "200": + description: Successful operation + schema: + properties: + data: + $ref: '#/definitions/consul' + type: object + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return one Consul server + tags: + - ServiceDiscovery + put: + description: Replaces a Consul server configuration by it's id. + operationId: replaceConsul + parameters: + - description: Consul Index + in: path + name: id + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/consul' + responses: + "200": + description: Consul server replaced + schema: + $ref: '#/definitions/consul' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace a Consul server + tags: + - ServiceDiscovery + /services: + get: + description: Returns a list of API managed services endpoints. + operationId: getServicesEndpoints + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/endpoints' + default: + $ref: '#/responses/DefaultError' + summary: Return list of service endpoints + tags: + - Discovery + /services/haproxy: + get: + description: Returns a list of HAProxy related endpoints. + operationId: getHaproxyEndpoints + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/endpoints' + default: + $ref: '#/responses/DefaultError' + summary: Return list of HAProxy related endpoints + tags: + - Discovery + /services/haproxy/sites: + get: + description: Returns an array of all configured sites. + operationId: getSites + parameters: + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/sites' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of sites + tags: + - Sites + post: + description: Adds a new site to the configuration file. + operationId: createSite + parameters: + - in: body + name: data + required: true + schema: + $ref: '#/definitions/site' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: Site created + schema: + $ref: '#/definitions/site' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/site' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a site + tags: + - Sites + /services/haproxy/sites/{name}: + delete: + description: Deletes a site from the configuration by it's name. + operationId: deleteSite + parameters: + - description: Site frontend name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: Site deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a site + tags: + - Sites + get: + description: Returns one site configuration by it's name. + operationId: getSite + parameters: + - description: Site frontend name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/site' + type: object + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return a site + tags: + - Sites + put: + description: Replaces a site configuration by it's name. + operationId: replaceSite + parameters: + - description: Site frontend name + in: path + name: name + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/site' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Site replaced + schema: + $ref: '#/definitions/site' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/site' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace a site + tags: + - Sites + /services/haproxy/stats: + get: + description: Returns a list of HAProxy stats endpoints. + operationId: getStatsEndpoints + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/endpoints' + default: + $ref: '#/responses/DefaultError' + summary: Return list of HAProxy stats endpoints + tags: + - Discovery + /services/haproxy/stats/native: + get: + description: Getting stats from the HAProxy. + operationId: getStats + parameters: + - description: Object type to get stats for (one of frontend, backend, server) + enum: + - frontend + - backend + - server + in: query + name: type + required: false + type: string + - description: Object name to get stats for + in: query + name: name + required: false + type: string + - description: Object parent name to get stats for, in case the object is a server + in: query + name: parent + required: false + type: string + x-dependency: + query.type: server + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/native_stats' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/native_stats' + default: + $ref: '#/responses/DefaultError' + summary: Gets stats + tags: + - Stats + /services/haproxy/transactions: + get: + description: Returns a list of HAProxy configuration transactions. Transactions + can be filtered by their status. + operationId: getTransactions + parameters: + - description: Filter by transaction status + enum: + - failed + - in_progress + in: query + name: status + required: false + type: string + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/transactions' + default: + $ref: '#/responses/DefaultError' + summary: Return list of HAProxy configuration transactions. + tags: + - Transactions + post: + description: Starts a new transaction and returns it's id + operationId: startTransaction + parameters: + - description: Configuration version on which to work on + in: query + name: version + required: true + type: integer + produces: + - application/json + responses: + "201": + description: Transaction started + schema: + $ref: '#/definitions/transaction' + "429": + description: Too many open transactions + schema: + example: + code: 429 + message: cannot start a new transaction, reached the maximum amount of 20 + active transactions available + properties: + code: + type: integer + message: + type: string + type: object + default: + $ref: '#/responses/DefaultError' + summary: Start a new transaction + tags: + - Transactions + /services/haproxy/transactions/{id}: + delete: + description: Deletes a transaction. + operationId: deleteTransaction + parameters: + - description: Transaction id + in: path + name: id + required: true + type: string + responses: + "204": + description: Transaction deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a transaction + tags: + - Transactions + get: + description: Returns one HAProxy configuration transactions. + operationId: getTransaction + parameters: + - description: Transaction id + in: path + name: id + required: true + type: string + responses: + "200": + description: Successful operation + schema: + $ref: '#/definitions/transaction' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return one HAProxy configuration transactions + tags: + - Transactions + put: + description: Commit transaction, execute all operations in transaction and return + msg + operationId: commitTransaction + parameters: + - description: Transaction id + in: path + name: id + required: true + type: string + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Transaction succesfully commited + schema: + $ref: '#/definitions/transaction' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/transaction' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Commit transaction + tags: + - Transactions + /services/haproxy/spoe_transactions: + get: + description: Returns a list of SPOE configuration transactions. Transactions can + be filtered by their status. + operationId: getSpoeTransactions + parameters: + - description: Spoe file name + in: query + name: spoe + required: true + type: string + - description: Filter by transaction status + enum: + - failed + - in_progress + in: query + name: status + required: false + type: string + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/spoe_transactions' + default: + $ref: '#/responses/DefaultError' + summary: Return list of SPOE configuration transactions. + tags: + - SpoeTransactions + post: + description: Starts a new transaction and returns it's id + operationId: startSpoeTransaction + parameters: + - description: Spoe file name + in: query + name: spoe + required: true + type: string + - description: Configuration version on which to work on + in: query + name: version + required: true + type: integer + produces: + - application/json + responses: + "201": + description: Transaction started + schema: + $ref: '#/definitions/spoe_transaction' + "429": + description: Too many open transactions + schema: + example: + code: 429 + message: cannot start a new transaction, reached the maximum amount of 20 + active transactions available + properties: + code: + type: integer + message: + type: string + type: object + default: + $ref: '#/responses/DefaultError' + summary: Start a new transaction + tags: + - SpoeTransactions + /services/haproxy/spoe_transactions/{id}: + delete: + description: Deletes a transaction. + operationId: deleteSpoeTransaction + parameters: + - description: Spoe file name + in: query + name: spoe + required: true + type: string + - description: Transaction id + in: path + name: id + required: true + type: string + responses: + "204": + description: Transaction deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a transaction + tags: + - SpoeTransactions + get: + description: Returns one SPOE configuration transactions. + operationId: getSpoeTransaction + parameters: + - description: Spoe file name + in: query + name: spoe + required: true + type: string + - description: Transaction id + in: path + name: id + required: true + type: string + responses: + "200": + description: Successful operation + schema: + $ref: '#/definitions/spoe_transaction' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return one SPOE configuration transactions + tags: + - SpoeTransactions + put: + description: Commit transaction, execute all operations in transaction and return + msg + operationId: commitSpoeTransaction + parameters: + - description: Spoe file name + in: query + name: spoe + required: true + type: string + - description: Transaction id + in: path + name: id + required: true + type: string + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Transaction succesfully commited + schema: + $ref: '#/definitions/spoe_transaction' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/spoe_transaction' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Commit transaction + tags: + - SpoeTransactions + /services/haproxy/reloads: + get: + description: Returns a list of HAProxy reloads. + operationId: getReloads + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/reloads' + default: + $ref: '#/responses/DefaultError' + summary: Return list of HAProxy Reloads. + tags: + - Reloads + /services/haproxy/reloads/{id}: + get: + description: Returns one HAProxy reload status. + operationId: getReload + parameters: + - description: Reload id + in: path + name: id + pattern: ^\d{4}-\d{2}-\d{2}-\d+$ + required: true + type: string + responses: + "200": + description: Successful operation + schema: + $ref: '#/definitions/reload' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return one HAProxy reload status + tags: + - Reloads + /services/haproxy/configuration: + get: + description: Returns a list of endpoints to be used for advanced configuration of + HAProxy objects. + operationId: getConfigurationEndpoints + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/endpoints' + default: + $ref: '#/responses/DefaultError' + summary: Return list of HAProxy advanced configuration endpoints + tags: + - Discovery + /services/haproxy/configuration/global: + get: + description: Returns global part of configuration. + operationId: getGlobal + parameters: + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/global' + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return a global part of configuration + tags: + - Global + put: + description: Replace global part of config + operationId: replaceGlobal + parameters: + - in: body + name: data + required: true + schema: + $ref: '#/definitions/global' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Global replaced + schema: + $ref: '#/definitions/global' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/global' + "400": + $ref: '#/responses/BadRequest' + default: + $ref: '#/responses/DefaultError' + summary: Replace global + tags: + - Global + /services/haproxy/configuration/defaults: + get: + description: Returns defaults part of configuration. + operationId: getDefaults + parameters: + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/defaults' + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return defaults part of configuration + tags: + - Defaults + put: + description: Replace defaults part of config + operationId: replaceDefaults + parameters: + - in: body + name: data + required: true + schema: + $ref: '#/definitions/defaults' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Defaults replaced + schema: + $ref: '#/definitions/defaults' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/defaults' + "400": + $ref: '#/responses/BadRequest' + default: + $ref: '#/responses/DefaultError' + summary: Replace defaults + tags: + - Defaults + /services/haproxy/configuration/frontends: + get: + description: Returns an array of all configured frontends. + operationId: getFrontends + parameters: + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/frontends' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of frontends + tags: + - Frontend + post: + description: Adds a new frontend to the configuration file. + operationId: createFrontend + parameters: + - in: body + name: data + required: true + schema: + $ref: '#/definitions/frontend' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: Frontend created + schema: + $ref: '#/definitions/frontend' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/frontend' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a frontend + tags: + - Frontend + /services/haproxy/configuration/frontends/{name}: + delete: + description: Deletes a frontend from the configuration by it's name. + operationId: deleteFrontend + parameters: + - description: Frontend name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: Frontend deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a frontend + tags: + - Frontend + get: + description: Returns one frontend configuration by it's name. + operationId: getFrontend + parameters: + - description: Frontend name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/frontend' + type: object + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return a frontend + tags: + - Frontend + put: + description: Replaces a frontend configuration by it's name. + operationId: replaceFrontend + parameters: + - description: Frontend name + in: path + name: name + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/frontend' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Frontend replaced + schema: + $ref: '#/definitions/frontend' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/frontend' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace a frontend + tags: + - Frontend + /services/haproxy/configuration/peer_section: + get: + description: Returns an array of all configured peer_section. + operationId: getPeerSections + parameters: + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/peer_sections' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of peer_section + tags: + - Peer + post: + description: Adds a new peer to the configuration file. + operationId: createPeer + parameters: + - in: body + name: data + required: true + schema: + $ref: '#/definitions/peer_section' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: Peer created + schema: + $ref: '#/definitions/peer_section' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/peer_section' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a peer + tags: + - Peer + /services/haproxy/configuration/peer_section/{name}: + delete: + description: Deletes a peer from the configuration by it's name. + operationId: deletePeer + parameters: + - description: Peer name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: Peer deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a peer + tags: + - Peer + get: + description: Returns one peer configuration by it's name. + operationId: getPeerSection + parameters: + - description: Peer name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/peer_section' + type: object + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return a peer + tags: + - Peer + /services/haproxy/configuration/peer_entries: + get: + description: Returns an array of all peer_entries that are configured in specified + peer section. + operationId: getPeerEntries + parameters: + - description: Parent peer section name + in: query + name: peer_section + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/peer_entries' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of peer_entries + tags: + - PeerEntry + post: + description: Adds a new peer entry in the specified peer section in the configuration + file. + operationId: createPeerEntry + parameters: + - description: Parent peer section name + in: query + name: peer_section + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/peer_entry' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: PeerEntry created + schema: + $ref: '#/definitions/peer_entry' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/peer_entry' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a new peer_entry + tags: + - PeerEntry + /services/haproxy/configuration/peer_entries/{name}: + delete: + description: Deletes a peer entry configuration by it's name in the specified peer + section. + operationId: deletePeerEntry + parameters: + - description: PeerEntry name + in: path + name: name + required: true + type: string + - description: Parent peers name + in: query + name: peer_section + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: PeerEntry deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a peer_entry + tags: + - PeerEntry + get: + description: Returns one peer_entry configuration by it's name in the specified + peer section. + operationId: getPeerEntry + parameters: + - description: PeerEntry name + in: path + name: name + required: true + type: string + - description: Parent peers name + in: query + name: peer_section + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/peer_entry' + type: object + "404": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Return one peer_entry + tags: + - PeerEntry + put: + description: Replaces a peer entry configuration by it's name in the specified peer + section. + operationId: replacePeerEntry + parameters: + - description: PeerEntry name + in: path + name: name + required: true + type: string + - description: Parent peers name + in: query + name: peer_section + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/peer_entry' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: PeerEntry replaced + schema: + $ref: '#/definitions/peer_entry' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/peer_entry' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace a peer_entry + tags: + - PeerEntry + /services/haproxy/configuration/backends: + get: + description: Returns an array of all configured backends. + operationId: getBackends + parameters: + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/backends' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of backends + tags: + - Backend + post: + description: Adds a new backend to the configuration file. + operationId: createBackend + parameters: + - in: body + name: data + required: true + schema: + $ref: '#/definitions/backend' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: Backend created + schema: + $ref: '#/definitions/backend' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/backend' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a backend + tags: + - Backend + /services/haproxy/configuration/backends/{name}: + delete: + description: Deletes a backend from the configuration by it's name. + operationId: deleteBackend + parameters: + - description: Backend name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: Backend deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a backend + tags: + - Backend + get: + description: Returns one backend configuration by it's name. + operationId: getBackend + parameters: + - description: Backend name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/backend' + type: object + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return a backend + tags: + - Backend + put: + description: Replaces a backend configuration by it's name. + operationId: replaceBackend + parameters: + - description: Backend name + in: path + name: name + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/backend' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Backend replaced + schema: + $ref: '#/definitions/backend' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/backend' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace a backend + tags: + - Backend + /services/haproxy/configuration/binds: + get: + description: Returns an array of all binds that are configured in specified frontend. + operationId: getBinds + parameters: + - description: Parent frontend name + in: query + name: frontend + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/binds' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of binds + tags: + - Bind + post: + description: Adds a new bind in the specified frontend in the configuration file. + operationId: createBind + parameters: + - description: Parent frontend name + in: query + name: frontend + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/bind' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: Bind created + schema: + $ref: '#/definitions/bind' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/bind' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a new bind + tags: + - Bind + /services/haproxy/configuration/binds/{name}: + delete: + description: Deletes a bind configuration by it's name in the specified frontend. + operationId: deleteBind + parameters: + - description: Bind name + in: path + name: name + required: true + type: string + - description: Parent frontend name + in: query + name: frontend + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: Bind deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a bind + tags: + - Bind + get: + description: Returns one bind configuration by it's name in the specified frontend. + operationId: getBind + parameters: + - description: Bind name + in: path + name: name + required: true + type: string + - description: Parent frontend name + in: query + name: frontend + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/bind' + type: object + "404": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Return one bind + tags: + - Bind + put: + description: Replaces a bind configuration by it's name in the specified frontend. + operationId: replaceBind + parameters: + - description: Bind name + in: path + name: name + required: true + type: string + - description: Parent frontend name + in: query + name: frontend + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/bind' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Bind replaced + schema: + $ref: '#/definitions/bind' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/bind' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace a bind + tags: + - Bind + /services/haproxy/configuration/servers: + get: + description: Returns an array of all servers that are configured in specified backend. + operationId: getServers + parameters: + - description: Parent backend name + in: query + name: backend + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/servers' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of servers + tags: + - Server + post: + description: Adds a new server in the specified backend in the configuration file. + operationId: createServer + parameters: + - description: Parent backend name + in: query + name: backend + required: true type: string - x-dependency: - algorithm: - required: true - value: url_param - x-display-name: Url Param - url_param_check_post: - type: integer - x-dependency: - algorithm: - value: url_param - x-display-name: Url Param Check Post - url_param_max_wait: - pattern: ^[^\d+$] - type: integer - x-dependency: - algorithm: - value: url_param - x-display-name: Url Param Max Weight - required: - - algorithm - type: object - forwardfor: - properties: - enabled: - enum: - - enabled + - in: body + name: data + required: true + schema: + $ref: '#/definitions/server' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: Server created + schema: + $ref: '#/definitions/server' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/server' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a new server + tags: + - Server + /services/haproxy/configuration/servers/{name}: + delete: + description: Deletes a server configuration by it's name in the specified backend. + operationId: deleteServer + parameters: + - description: Server name + in: path + name: name + required: true type: string - except: - pattern: ^[^\s]+$ + - description: Parent backend name + in: query + name: backend + required: true type: string - header: - pattern: ^[^\s]+$ + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: Server deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a server + tags: + - Server + get: + description: Returns one server configuration by it's name in the specified backend. + operationId: getServer + parameters: + - description: Server name + in: path + name: name + required: true type: string - ifnone: - type: boolean - required: - - enabled - type: object - x-display-name: ForwardFor - default_server: - properties: - check-ssl: - enum: - - enabled - - disabled + - description: Parent backend name + in: query + name: backend + required: true type: string - downinter: - type: integer - x-nullable: true - fall: - type: integer - x-nullable: true - fastinter: - type: integer - x-nullable: true - inter: - type: integer - x-nullable: true - port: - maximum: 65535 - minimum: 1 - type: integer - x-nullable: true - rise: - type: integer - x-nullable: true - type: object - httpchk: - properties: - method: - enum: - - HEAD - - PUT - - POST - - GET - - TRACE - - PATCH + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/server' + type: object + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return one server + tags: + - Server + put: + description: Replaces a server configuration by it's name in the specified backend. + operationId: replaceServer + parameters: + - description: Server name + in: path + name: name + required: true type: string - uri: - pattern: ^[^\s]+$ + - description: Parent backend name + in: query + name: backend + required: true type: string - version: - pattern: ^[^\s]+$ + - in: body + name: data + required: true + schema: + $ref: '#/definitions/server' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: Server replaced + schema: + $ref: '#/definitions/server' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/server' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace a server + tags: + - Server + /services/haproxy/configuration/http_request_rules: + get: + description: Returns all HTTP Request Rules that are configured in specified parent. + operationId: getHTTPRequestRules + parameters: + - description: Parent name + in: query + name: parent_name + required: true type: string - type: object - x-display-name: HTTP Check - redispatch: - properties: - enabled: + - description: Parent type enum: - - enabled - - disabled + - frontend + - backend + in: query + name: parent_type + required: true + type: string + - $ref: '#/parameters/transaction_id' + responses: + "200": + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/http_request_rules' + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return an array of all HTTP Request Rules + tags: + - HTTPRequestRule + post: + description: Adds a new HTTP Request Rule of the specified type in the specified + parent. + operationId: createHTTPRequestRule + parameters: + - description: Parent name + in: query + name: parent_name + required: true type: string - interval: - type: integer - x-nullable: false - required: - - enabled - type: object - errorfile: - properties: - code: + - description: Parent type enum: - - 200 - - 400 - - 403 - - 405 - - 408 - - 425 - - 429 - - 500 - - 502 - - 503 - - 504 - type: integer - file: + - frontend + - backend + in: query + name: parent_type + required: true type: string - type: object - x-display-name: Error File - cookie: - properties: - domain: - items: - pattern: ^[^\s]+$ - type: string - type: array - dynamic: - type: boolean - httponly: - type: boolean - indirect: - type: boolean - maxidle: - pattern: ^[^\d+$] - type: integer - maxlife: - pattern: ^[^\d+$] + - in: body + name: data + required: true + schema: + $ref: '#/definitions/http_request_rule' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: HTTP Request Rule created + schema: + $ref: '#/definitions/http_request_rule' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/http_request_rule' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a new HTTP Request Rule + tags: + - HTTPRequestRule + /services/haproxy/configuration/http_request_rules/{index}: + delete: + description: Deletes a HTTP Request Rule configuration by it's index from the specified + parent. + operationId: deleteHTTPRequestRule + parameters: + - description: HTTP Request Rule Index + in: path + name: index + required: true type: integer - name: - pattern: ^[^\s]+$ + - description: Parent name + in: query + name: parent_name + required: true type: string - nocache: - type: boolean - postonly: - type: boolean - preserve: - type: boolean - secure: - type: boolean - type: + - description: Parent type enum: - - rewrite - - insert - - prefix + - frontend + - backend + in: query + name: parent_type + required: true type: string - required: - - name - type: object -responses: - BadRequest: - description: Bad request - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false - schema: - $ref: '#/definitions/error' - NotFound: - description: The specified resource was not found - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false - schema: - $ref: '#/definitions/error' - AlreadyExists: - description: The specified resource already exists - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false - schema: - $ref: '#/definitions/error' - DefaultError: - description: General Error - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false - schema: - $ref: '#/definitions/error' -parameters: - transaction_id: - name: transaction_id - in: query - description: ID of the transaction where we want to add the operation. Cannot be used when version is specified. - type: string - required: false - x-nullable: false - version: - name: version - in: query - description: Version used for checking configuration version. Cannot be used when transaction is specified, transaction has it's own version. - type: integer - required: false - x-nullable: false - force_reload: - name: force_reload - in: query - description: If set, do a force reload, do not wait for the configured reload-delay. Cannot be used when transaction is specified, as changes in transaction are not applied directly to configuration. - type: boolean - required: false - default: false -securityDefinitions: - basic_auth: - type: basic -basePath: /v2 -schemes: - - http -consumes: - - application/json -produces: - - application/json -tags: - - name: Discovery - description: API autodiscover endpoints - - name: Information - - name: Specification - - name: Transactions - description: | - Managing transactions. Configuration changes can be grouped in the transaction. You start the - transaction with trasactions POST, and call the configuration changes you need with parameter - transaction_id. When you want to commit the transaction, you call the transactions PUT and all changes - in that transaction is commited. If you call a configuration change without the transaction_id, - transaction mechanism is implicitly called with one operation in transaction. - - name: Reloads - description: | - Checking reload success. To avoid constant reloading we reload in intervals that are configurable when - with reload-delay option. When a change to configuration is made and force_reload url query string - parameter is false we issue a request for reload, and return the reload ID in response header. You can - then use reloads endpoints to check the status of that reload ID. If force_reload is true, we override all - of this and reload immediately. - - name: Sites - description: | - Managing sites (simple configuration mode). Sites are considered as one frontend with multiple backends - connected to it via default_backend or use-backend directives. - - name: Stats - description: Stats container - - name: Global - description: Managing global configuration (advanced mode) - - name: Defaults - description: Managing defaults configuration (advanced mode) - - name: Frontend - description: Managing frontend configuration (advanced mode) - - name: Backend - description: Managing backend configurations (advanced mode) - - name: Bind - description: Managing frontend bind configurations (advanced mode) - - name: Server - description: Managing backend server configurations (advanced mode) - - name: Frontend options - description: Various frontend options (advanced mode) - - name: Backend options - description: Various backend options (advanced mode) - - name: Configuration - description: Raw HAProxy configuration management (advanced mode) - - name: HAProxy configuration management - description: Managing advanced haproxy configuration (advanced mode) - - name: TCPRequestRule - - name: HTTPRequestRule - - name: HTTPResponseRule - - name: BackendSwitchingRule - - name: ServerSwitchingRule - - name: TCPResponseRule - - name: Filter - - name: StickRule - - name: LogTarget - - name: ACL -security: - - basic_auth: [] -paths: - /: + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: HTTP Request Rule deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a HTTP Request Rule + tags: + - HTTPRequestRule get: - description: Returns a list of root endpoints. - operationId: getAPIEndpoints - produces: - - application/json + description: Returns one HTTP Request Rule configuration by it's index in the specified + parent. + operationId: getHTTPRequestRule + parameters: + - description: HTTP Request Rule Index + in: path + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string + - $ref: '#/parameters/transaction_id' responses: "200": - description: Success + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false schema: - $ref: '#/definitions/endpoints' + properties: + _version: + type: integer + data: + $ref: '#/definitions/http_request_rule' + type: object + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return list of root endpoints + summary: Return one HTTP Request Rule tags: - - Discovery - /specification: + - HTTPRequestRule + put: + description: Replaces a HTTP Request Rule configuration by it's index in the specified + parent. + operationId: replaceHTTPRequestRule + parameters: + - description: HTTP Request Rule Index + in: path + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/http_request_rule' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "200": + description: HTTP Request Rule replaced + schema: + $ref: '#/definitions/http_request_rule' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/http_request_rule' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace a HTTP Request Rule + tags: + - HTTPRequestRule + /services/haproxy/configuration/http_response_rules: get: - description: Return Data Plane API OpenAPI specification - operationId: getSpecification - produces: - - application/json + description: Returns all HTTP Response Rules that are configured in specified parent. + operationId: getHTTPResponseRules + parameters: + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string + - $ref: '#/parameters/transaction_id' responses: "200": - description: Success + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false schema: + properties: + _version: + type: integer + data: + $ref: '#/definitions/http_response_rules' + required: + - data type: object default: $ref: '#/responses/DefaultError' - summary: Data Plane API Specification + summary: Return an array of all HTTP Response Rules tags: - - Specification - /info: + - HTTPResponseRule + post: + description: Adds a new HTTP Response Rule of the specified type in the specified + parent. + operationId: createHTTPResponseRule + parameters: + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/http_response_rule' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "201": + description: HTTP Response Rule created + schema: + $ref: '#/definitions/http_response_rule' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/http_response_rule' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Add a new HTTP Response Rule + tags: + - HTTPResponseRule + /services/haproxy/configuration/http_response_rules/{index}: + delete: + description: Deletes a HTTP Response Rule configuration by it's index from the specified + parent. + operationId: deleteHTTPResponseRule + parameters: + - description: HTTP Response Rule Index + in: path + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: HTTP Response Rule deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a HTTP Response Rule + tags: + - HTTPResponseRule get: - description: Return API, hardware and OS information - operationId: getInfo - produces: - - application/json + description: Returns one HTTP Response Rule configuration by it's index in the specified + parent. + operationId: getHTTPResponseRule + parameters: + - description: HTTP Response Rule Index + in: path + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string + - $ref: '#/parameters/transaction_id' responses: "200": - description: Success + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false schema: - $ref: '#/definitions/info' + properties: + _version: + type: integer + data: + $ref: '#/definitions/http_response_rule' + type: object + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return API, hardware and OS information + summary: Return one HTTP Response Rule tags: - - Information - /services: - get: - description: Returns a list of API managed services endpoints. - operationId: getServicesEndpoints - produces: - - application/json + - HTTPResponseRule + put: + description: Replaces a HTTP Response Rule configuration by it's index in the specified + parent. + operationId: replaceHTTPResponseRule + parameters: + - description: HTTP Response Rule Index + in: path + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/http_response_rule' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' responses: "200": - description: Success + description: HTTP Response Rule replaced schema: - $ref: '#/definitions/endpoints' - default: - $ref: '#/responses/DefaultError' - summary: Return list of service endpoints - tags: - - Discovery - /services/haproxy: - get: - description: Returns a list of HAProxy related endpoints. - operationId: getHaproxyEndpoints - produces: - - application/json - responses: - "200": - description: Success + $ref: '#/definitions/http_response_rule' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string schema: - $ref: '#/definitions/endpoints' + $ref: '#/definitions/http_response_rule' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return list of HAProxy related endpoints + summary: Replace a HTTP Response Rule tags: - - Discovery - /services/haproxy/sites: + - HTTPResponseRule + /services/haproxy/configuration/tcp_request_rules: get: - description: Returns an array of all configured sites. - operationId: getSites + description: Returns all TCP Request Rules that are configured in specified parent + and parent type. + operationId: getTCPRequestRules parameters: + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string - $ref: '#/parameters/transaction_id' responses: "200": @@ -3414,32 +8276,46 @@ paths: _version: type: integer data: - $ref: '#/definitions/sites' + $ref: '#/definitions/tcp_request_rules' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of sites + summary: Return an array of all TCP Request Rules tags: - - Sites + - TCPRequestRule post: - description: Adds a new site to the configuration file. - operationId: createSite + description: Adds a new TCP Request Rule of the specified type in the specified + parent. + operationId: createTCPRequestRule parameters: + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string - in: body name: data required: true schema: - $ref: '#/definitions/site' + $ref: '#/definitions/tcp_request_rule' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "201": - description: Site created + description: TCP Request Rule created schema: - $ref: '#/definitions/site' + $ref: '#/definitions/tcp_request_rule' "202": description: Configuration change accepted and reload requested headers: @@ -3447,24 +8323,38 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/site' + $ref: '#/definitions/tcp_request_rule' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a site + summary: Add a new TCP Request Rule tags: - - Sites - /services/haproxy/sites/{name}: + - TCPRequestRule + /services/haproxy/configuration/tcp_request_rules/{index}: delete: - description: Deletes a site from the configuration by it's name. - operationId: deleteSite + description: Deletes a TCP Request Rule configuration by it's index from the specified + parent. + operationId: deleteTCPRequestRule parameters: - - description: Site frontend name + - description: TCP Request Rule Index in: path - name: name + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type required: true type: string - $ref: '#/parameters/transaction_id' @@ -3478,21 +8368,35 @@ paths: description: ID of the requested reload type: string "204": - description: Site deleted + description: TCP Request Rule deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a site + summary: Delete a TCP Request Rule tags: - - Sites + - TCPRequestRule get: - description: Returns one site configuration by it's name. - operationId: getSite + description: Returns one TCP Request Rule configuration by it's index in the specified + parent. + operationId: getTCPRequestRule parameters: - - description: Site frontend name + - description: TCP Request Rule Index in: path - name: name + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type required: true type: string - $ref: '#/parameters/transaction_id' @@ -3509,294 +8413,270 @@ paths: _version: type: integer data: - $ref: '#/definitions/site' + $ref: '#/definitions/tcp_request_rule' type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return a site + summary: Return one TCP Request Rule tags: - - Sites + - TCPRequestRule put: - description: Replaces a site configuration by it's name. - operationId: replaceSite - parameters: - - description: Site frontend name - in: path - name: name - required: true - type: string - - in: body - name: data - required: true - schema: - $ref: '#/definitions/site' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' - responses: - "200": - description: Site replaced - schema: - $ref: '#/definitions/site' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string - schema: - $ref: '#/definitions/site' - "400": - $ref: '#/responses/BadRequest' - "404": - $ref: '#/responses/NotFound' - default: - $ref: '#/responses/DefaultError' - summary: Replace a site - tags: - - Sites - /services/haproxy/stats: - get: - description: Returns a list of HAProxy stats endpoints. - operationId: getStatsEndpoints - produces: - - application/json - responses: - "200": - description: Success - schema: - $ref: '#/definitions/endpoints' - default: - $ref: '#/responses/DefaultError' - summary: Return list of HAProxy stats endpoints - tags: - - Discovery - /services/haproxy/stats/native: - get: - description: Getting stats from the HAProxy. - operationId: getStats + description: Replaces a TCP Request Rule configuration by it's index in the specified + parent. + operationId: replaceTCPRequestRule parameters: - - description: Object type to get stats for (one of frontend, backend, server) + - description: TCP Request Rule Index + in: path + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type enum: - frontend - backend - - server - in: query - name: type - required: false - type: string - - description: Object name to get stats for - in: query - name: name - required: false - type: string - - description: Object parent name to get stats for, in case the object is a server in: query - name: parent - required: false + name: parent_type + required: true type: string - x-dependency: - query.type: server - produces: - - application/json + - in: body + name: data + required: true + schema: + $ref: '#/definitions/tcp_request_rule' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' responses: "200": - description: Success + description: TCP Request Rule replaced schema: - $ref: '#/definitions/native_stats' - "500": - description: Internal Server Error + $ref: '#/definitions/tcp_request_rule' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string schema: - $ref: '#/definitions/native_stats' + $ref: '#/definitions/tcp_request_rule' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Gets stats + summary: Replace a TCP Request Rule tags: - - Stats - /services/haproxy/transactions: + - TCPRequestRule + /services/haproxy/configuration/tcp_response_rules: get: - description: Returns a list of HAProxy configuration transactions. Transactions - can be filtered by their status. - operationId: getTransactions + description: Returns all TCP Response Rules that are configured in specified backend. + operationId: getTCPResponseRules parameters: - - description: Filter by transaction status - enum: - - failed - - in_progress + - description: Parent backend name in: query - name: status - required: false + name: backend + required: true type: string - produces: - - application/json + - $ref: '#/parameters/transaction_id' responses: "200": - description: Success + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false schema: - $ref: '#/definitions/transactions' + properties: + _version: + type: integer + data: + $ref: '#/definitions/tcp_response_rules' + required: + - data + type: object default: $ref: '#/responses/DefaultError' - summary: Return list of HAProxy configuration transactions. + summary: Return an array of all TCP Response Rules tags: - - Transactions + - TCPResponseRule post: - description: Starts a new transaction and returns it's id - operationId: startTransaction + description: Adds a new TCP Response Rule of the specified type in the specified + backend. + operationId: createTCPResponseRule parameters: - - description: Configuration version on which to work on + - description: Parent backend name in: query - name: version + name: backend required: true - type: integer - produces: - - application/json + type: string + - in: body + name: data + required: true + schema: + $ref: '#/definitions/tcp_response_rule' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' responses: "201": - description: Transaction started + description: TCP Response Rule created schema: - $ref: '#/definitions/transaction' + $ref: '#/definitions/tcp_response_rule' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/tcp_response_rule' + "400": + $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Start a new transaction + summary: Add a new TCP Response Rule tags: - - Transactions - /services/haproxy/transactions/{id}: + - TCPResponseRule + /services/haproxy/configuration/tcp_response_rules/{index}: delete: - description: Deletes a transaction. - operationId: deleteTransaction + description: Deletes a TCP Response Rule configuration by it's index from the specified + backend. + operationId: deleteTCPResponseRule parameters: - - description: Transaction id + - description: TCP Response Rule Index in: path - name: id + name: index + required: true + type: integer + - description: Parent backend name + in: query + name: backend required: true type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string "204": - description: Transaction deleted + description: TCP Response Rule deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a transaction + summary: Delete a TCP Response Rule tags: - - Transactions + - TCPResponseRule get: - description: Returns one HAProxy configuration transactions. - operationId: getTransaction + description: Returns one TCP Response Rule configuration by it's index in the specified + backend. + operationId: getTCPResponseRule parameters: - - description: Transaction id + - description: TCP Response Rule Index in: path - name: id + name: index + required: true + type: integer + - description: Parent backend name + in: query + name: backend required: true type: string + - $ref: '#/parameters/transaction_id' responses: "200": description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false schema: - $ref: '#/definitions/transaction' + properties: + _version: + type: integer + data: + $ref: '#/definitions/tcp_response_rule' + type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one HAProxy configuration transactions + summary: Return one TCP Response Rule tags: - - Transactions + - TCPResponseRule put: - description: Commit transaction, execute all operations in transaction and return - msg - operationId: commitTransaction + description: Replaces a TCP Response Rule configuration by it's Index in the specified + backend. + operationId: replaceTCPResponseRule parameters: - - description: Transaction id + - description: TCP Response Rule Index in: path - name: id + name: index + required: true + type: integer + - description: Parent backend name + in: query + name: backend required: true type: string - - $ref: '#/parameters/force_reload' - responses: - "200": - description: Transaction succesfully commited - schema: - $ref: '#/definitions/transaction' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string - schema: - $ref: '#/definitions/transaction' - "400": - $ref: '#/responses/BadRequest' - "404": - $ref: '#/responses/NotFound' - default: - $ref: '#/responses/DefaultError' - summary: Commit transaction - tags: - - Transactions - /services/haproxy/reloads: - get: - description: Returns a list of HAProxy reloads. - operationId: getReloads - produces: - - application/json - responses: - "200": - description: Success - schema: - $ref: '#/definitions/reloads' - default: - $ref: '#/responses/DefaultError' - summary: Return list of HAProxy Reloads. - tags: - - Reloads - /services/haproxy/reloads/{id}: - get: - description: Returns one HAProxy reload status. - operationId: getReload - parameters: - - description: Reload id - in: path - name: id - pattern: ^\d{4}-\d{2}-\d{2}-\d+$ + - in: body + name: data required: true - type: string + schema: + $ref: '#/definitions/tcp_response_rule' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' responses: "200": - description: Successful operation + description: TCP Response Rule replaced schema: - $ref: '#/definitions/reload' + $ref: '#/definitions/tcp_response_rule' + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: '#/definitions/tcp_response_rule' + "400": + $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one HAProxy reload status - tags: - - Reloads - /services/haproxy/configuration: - get: - description: Returns a list of endpoints to be used for advanced configuration of - HAProxy objects. - operationId: getConfigurationEndpoints - produces: - - application/json - responses: - "200": - description: Success - schema: - $ref: '#/definitions/endpoints' - default: - $ref: '#/responses/DefaultError' - summary: Return list of HAProxy advanced configuration endpoints + summary: Replace a TCP Response Rule tags: - - Discovery - /services/haproxy/configuration/global: + - TCPResponseRule + /services/haproxy/configuration/backend_switching_rules: get: - description: Returns global part of configuration. - operationId: getGlobal + description: Returns all Backend Switching Rules that are configured in specified + frontend. + operationId: getBackendSwitchingRules parameters: + - description: Frontend name + in: query + name: frontend + required: true + type: string - $ref: '#/parameters/transaction_id' responses: "200": @@ -3811,31 +8691,38 @@ paths: _version: type: integer data: - $ref: '#/definitions/global' + $ref: '#/definitions/backend_switching_rules' + required: + - data type: object default: $ref: '#/responses/DefaultError' - summary: Return a global part of configuration + summary: Return an array of all Backend Switching Rules tags: - - Global - - HAProxy configuration management - put: - description: Replace global part of config - operationId: replaceGlobal + - BackendSwitchingRule + post: + description: Adds a new Backend Switching Rule of the specified type in the specified + frontend. + operationId: createBackendSwitchingRule parameters: + - description: Frontend name + in: query + name: frontend + required: true + type: string - in: body name: data required: true schema: - $ref: '#/definitions/global' + $ref: '#/definitions/backend_switching_rule' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: - "200": - description: Global replaced + "201": + description: Backend Switching Rule created schema: - $ref: '#/definitions/global' + $ref: '#/definitions/backend_switching_rule' "202": description: Configuration change accepted and reload requested headers: @@ -3843,20 +8730,66 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/global' + $ref: '#/definitions/backend_switching_rule' "400": $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Replace global + summary: Add a new Backend Switching Rule tags: - - Global - - HAProxy configuration management - /services/haproxy/configuration/defaults: + - BackendSwitchingRule + /services/haproxy/configuration/backend_switching_rules/{index}: + delete: + description: Deletes a Backend Switching Rule configuration by it's index from the + specified frontend. + operationId: deleteBackendSwitchingRule + parameters: + - description: Switching Rule Index + in: path + name: index + required: true + type: integer + - description: Frontend name + in: query + name: frontend + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + "204": + description: Backend Switching Rule deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Delete a Backend Switching Rule + tags: + - BackendSwitchingRule get: - description: Returns defaults part of configuration. - operationId: getDefaults + description: Returns one Backend Switching Rule configuration by it's index in the + specified frontend. + operationId: getBackendSwitchingRule parameters: + - description: Switching Rule Index + in: path + name: index + required: true + type: integer + - description: Frontend name + in: query + name: frontend + required: true + type: string - $ref: '#/parameters/transaction_id' responses: "200": @@ -3871,31 +8804,43 @@ paths: _version: type: integer data: - $ref: '#/definitions/defaults' + $ref: '#/definitions/backend_switching_rule' type: object + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return defaults part of configuration + summary: Return one Backend Switching Rule tags: - - Defaults - - HAProxy configuration management + - BackendSwitchingRule put: - description: Replace defaults part of config - operationId: replaceDefaults + description: Replaces a Backend Switching Rule configuration by it's index in the + specified frontend. + operationId: replaceBackendSwitchingRule parameters: + - description: Switching Rule Index + in: path + name: index + required: true + type: integer + - description: Frontend name + in: query + name: frontend + required: true + type: string - in: body name: data required: true schema: - $ref: '#/definitions/defaults' + $ref: '#/definitions/backend_switching_rule' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "200": - description: Defaults replaced + description: Backend Switching Rule replaced schema: - $ref: '#/definitions/defaults' + $ref: '#/definitions/backend_switching_rule' "202": description: Configuration change accepted and reload requested headers: @@ -3903,20 +8848,27 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/defaults' + $ref: '#/definitions/backend_switching_rule' "400": $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace defaults + summary: Replace a Backend Switching Rule tags: - - Defaults - - HAProxy configuration management - /services/haproxy/configuration/frontends: + - BackendSwitchingRule + /services/haproxy/configuration/server_switching_rules: get: - description: Returns an array of all configured frontends. - operationId: getFrontends + description: Returns all Backend Switching Rules that are configured in specified + backend. + operationId: getServerSwitchingRules parameters: + - description: Backend name + in: query + name: backend + required: true + type: string - $ref: '#/parameters/transaction_id' responses: "200": @@ -3931,33 +8883,38 @@ paths: _version: type: integer data: - $ref: '#/definitions/frontends' + $ref: '#/definitions/server_switching_rules' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of frontends + summary: Return an array of all Server Switching Rules tags: - - Frontend - - HAProxy configuration management + - ServerSwitchingRule post: - description: Adds a new frontend to the configuration file. - operationId: createFrontend + description: Adds a new Server Switching Rule of the specified type in the specified + backend. + operationId: createServerSwitchingRule parameters: + - description: Backend name + in: query + name: backend + required: true + type: string - in: body name: data required: true schema: - $ref: '#/definitions/frontend' + $ref: '#/definitions/server_switching_rule' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "201": - description: Frontend created + description: Server Switching Rule created schema: - $ref: '#/definitions/frontend' + $ref: '#/definitions/server_switching_rule' "202": description: Configuration change accepted and reload requested headers: @@ -3965,25 +8922,30 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/frontend' + $ref: '#/definitions/server_switching_rule' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a frontend + summary: Add a new Server Switching Rule tags: - - Frontend - - HAProxy configuration management - /services/haproxy/configuration/frontends/{name}: + - ServerSwitchingRule + /services/haproxy/configuration/server_switching_rules/{index}: delete: - description: Deletes a frontend from the configuration by it's name. - operationId: deleteFrontend + description: Deletes a Server Switching Rule configuration by it's index from the + specified backend. + operationId: deleteServerSwitchingRule parameters: - - description: Frontend name + - description: Switching Rule Index in: path - name: name + name: index + required: true + type: integer + - description: Backend name + in: query + name: backend required: true type: string - $ref: '#/parameters/transaction_id' @@ -3997,22 +8959,27 @@ paths: description: ID of the requested reload type: string "204": - description: Frontend deleted + description: Server Switching Rule deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a frontend + summary: Delete a Server Switching Rule tags: - - Frontend - - HAProxy configuration management + - ServerSwitchingRule get: - description: Returns one frontend configuration by it's name. - operationId: getFrontend + description: Returns one Server Switching Rule configuration by it's index in the + specified backend. + operationId: getServerSwitchingRule parameters: - - description: Frontend name + - description: Switching Rule Index in: path - name: name + name: index + required: true + type: integer + - description: Backend name + in: query + name: backend required: true type: string - $ref: '#/parameters/transaction_id' @@ -4029,38 +8996,43 @@ paths: _version: type: integer data: - $ref: '#/definitions/frontend' + $ref: '#/definitions/server_switching_rule' type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return a frontend + summary: Return one Server Switching Rule tags: - - Frontend - - HAProxy configuration management + - ServerSwitchingRule put: - description: Replaces a frontend configuration by it's name. - operationId: replaceFrontend + description: Replaces a Server Switching Rule configuration by it's index in the + specified backend. + operationId: replaceServerSwitchingRule parameters: - - description: Frontend name + - description: Switching Rule Index in: path - name: name + name: index + required: true + type: integer + - description: Backend name + in: query + name: backend required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/frontend' + $ref: '#/definitions/server_switching_rule' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "200": - description: Frontend replaced + description: Server Switching Rule replaced schema: - $ref: '#/definitions/frontend' + $ref: '#/definitions/server_switching_rule' "202": description: Configuration change accepted and reload requested headers: @@ -4068,22 +9040,34 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/frontend' + $ref: '#/definitions/server_switching_rule' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a frontend + summary: Replace a Server Switching Rule tags: - - Frontend - - HAProxy configuration management - /services/haproxy/configuration/backends: + - ServerSwitchingRule + /services/haproxy/configuration/filters: get: - description: Returns an array of all configured backends. - operationId: getBackends + description: Returns all Filters that are configured in specified parent. + operationId: getFilters parameters: + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string - $ref: '#/parameters/transaction_id' responses: "200": @@ -4098,33 +9082,45 @@ paths: _version: type: integer data: - $ref: '#/definitions/backends' + $ref: '#/definitions/filters' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of backends + summary: Return an array of all Filters tags: - - Backend - - HAProxy configuration management + - Filter post: - description: Adds a new backend to the configuration file. - operationId: createBackend + description: Adds a new Filter of the specified type in the specified parent. + operationId: createFilter parameters: + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type + required: true + type: string - in: body name: data required: true schema: - $ref: '#/definitions/backend' + $ref: '#/definitions/filter' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "201": - description: Backend created + description: Filter created schema: - $ref: '#/definitions/backend' + $ref: '#/definitions/filter' "202": description: Configuration change accepted and reload requested headers: @@ -4132,25 +9128,37 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/backend' + $ref: '#/definitions/filter' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a backend + summary: Add a new Filter tags: - - Backend - - HAProxy configuration management - /services/haproxy/configuration/backends/{name}: + - Filter + /services/haproxy/configuration/filters/{index}: delete: - description: Deletes a frontend from the configuration by it's name. - operationId: deleteBackend + description: Deletes a Filter configuration by it's index from the specified parent. + operationId: deleteFilter parameters: - - description: Backend name + - description: Filter Index in: path - name: name + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type required: true type: string - $ref: '#/parameters/transaction_id' @@ -4164,22 +9172,34 @@ paths: description: ID of the requested reload type: string "204": - description: Backend deleted + description: Filter deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a backend + summary: Delete a Filter tags: - - Backend - - HAProxy configuration management + - Filter get: - description: Returns one backend configuration by it's name. - operationId: getBackend + description: Returns one Filter configuration by it's index in the specified parent. + operationId: getFilter parameters: - - description: Backend name + - description: Filter Index in: path - name: name + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type required: true type: string - $ref: '#/parameters/transaction_id' @@ -4196,38 +9216,50 @@ paths: _version: type: integer data: - $ref: '#/definitions/backend' + $ref: '#/definitions/filter' type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return a backend + summary: Return one Filter tags: - - Backend - - HAProxy configuration management + - Filter put: - description: Replaces a backend configuration by it's name. - operationId: replaceBackend + description: Replaces a Filter configuration by it's index in the specified parent. + operationId: replaceFilter parameters: - - description: Backend name + - description: Filter Index in: path - name: name + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/backend' + $ref: '#/definitions/filter' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "200": - description: Backend replaced + description: Filter replaced schema: - $ref: '#/definitions/backend' + $ref: '#/definitions/filter' "202": description: Configuration change accepted and reload requested headers: @@ -4235,25 +9267,24 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/backend' + $ref: '#/definitions/filter' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a backend + summary: Replace a Filter tags: - - Backend - - HAProxy configuration management - /services/haproxy/configuration/binds: + - Filter + /services/haproxy/configuration/stick_rules: get: - description: Returns an array of all binds that are configured in specified frontend. - operationId: getBinds + description: Returns all Stick Rules that are configured in specified backend. + operationId: getStickRules parameters: - - description: Parent frontend name + - description: Backend name in: query - name: frontend + name: backend required: true type: string - $ref: '#/parameters/transaction_id' @@ -4270,39 +9301,37 @@ paths: _version: type: integer data: - $ref: '#/definitions/binds' + $ref: '#/definitions/stick_rules' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of binds + summary: Return an array of all Stick Rules tags: - - Bind - - HAProxy configuration management - - Frontend options + - StickRule post: - description: Adds a new bind in the specified frontend in the configuration file. - operationId: createBind + description: Adds a new Stick Rule of the specified type in the specified backend. + operationId: createStickRule parameters: - - description: Parent frontend name + - description: Backend name in: query - name: frontend + name: backend required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/bind' + $ref: '#/definitions/stick_rule' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "201": - description: Bind created + description: Stick Rule created schema: - $ref: '#/definitions/bind' + $ref: '#/definitions/stick_rule' "202": description: Configuration change accepted and reload requested headers: @@ -4310,31 +9339,30 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/bind' + $ref: '#/definitions/stick_rule' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new bind + summary: Add a new Stick Rule tags: - - Bind - - HAProxy configuration management - - Frontend options - /services/haproxy/configuration/binds/{name}: + - StickRule + /services/haproxy/configuration/stick_rules/{index}: delete: - description: Deletes a bind configuration by it's name in the specified frontend. - operationId: deleteBind + description: Deletes a Stick Rule configuration by it's index from the specified + backend. + operationId: deleteStickRule parameters: - - description: Bind name + - description: Stick Rule Index in: path - name: name + name: index required: true - type: string - - description: Parent frontend name + type: integer + - description: Backend name in: query - name: frontend + name: backend required: true type: string - $ref: '#/parameters/transaction_id' @@ -4348,28 +9376,27 @@ paths: description: ID of the requested reload type: string "204": - description: Bind deleted + description: Stick Rule deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a bind + summary: Delete a Stick Rule tags: - - Bind - - HAProxy configuration management - - Frontend options + - StickRule get: - description: Returns one bind configuration by it's name in the specified frontend. - operationId: getBind + description: Returns one Stick Rule configuration by it's index in the specified + backend. + operationId: getStickRule parameters: - - description: Bind name + - description: Stick Rule Index in: path - name: name + name: index required: true - type: string - - description: Parent frontend name + type: integer + - description: Backend name in: query - name: frontend + name: backend required: true type: string - $ref: '#/parameters/transaction_id' @@ -4386,44 +9413,43 @@ paths: _version: type: integer data: - $ref: '#/definitions/bind' + $ref: '#/definitions/stick_rule' type: object "404": - $ref: '#/responses/AlreadyExists' + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one bind + summary: Return one Stick Rule tags: - - Bind - - HAProxy configuration management - - Frontend options + - StickRule put: - description: Replaces a bind configuration by it's name in the specified frontend. - operationId: replaceBind + description: Replaces a Stick Rule configuration by it's index in the specified + backend. + operationId: replaceStickRule parameters: - - description: Bind name + - description: Stick Rule Index in: path - name: name + name: index required: true - type: string - - description: Parent frontend name + type: integer + - description: Backend name in: query - name: frontend + name: backend required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/bind' + $ref: '#/definitions/stick_rule' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "200": - description: Bind replaced + description: Stick Rule replaced schema: - $ref: '#/definitions/bind' + $ref: '#/definitions/stick_rule' "202": description: Configuration change accepted and reload requested headers: @@ -4431,26 +9457,32 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/bind' + $ref: '#/definitions/stick_rule' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a bind + summary: Replace a Stick Rule tags: - - Bind - - HAProxy configuration management - - Frontend options - /services/haproxy/configuration/servers: + - StickRule + /services/haproxy/configuration/log_targets: get: - description: Returns an array of all servers that are configured in specified backend. - operationId: getServers + description: Returns all Log Targets that are configured in specified parent. + operationId: getLogTargets parameters: - - description: Parent backend name + - description: Parent name in: query - name: backend + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type required: true type: string - $ref: '#/parameters/transaction_id' @@ -4467,39 +9499,45 @@ paths: _version: type: integer data: - $ref: '#/definitions/servers' + $ref: '#/definitions/log_targets' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of servers + summary: Return an array of all Log Targets tags: - - Server - - HAProxy configuration management - - Backend options + - LogTarget post: - description: Adds a new server in the specified backend in the configuration file. - operationId: createServer + description: Adds a new Log Target of the specified type in the specified parent. + operationId: createLogTarget parameters: - - description: Parent backend name + - description: Parent name in: query - name: backend + name: parent_name + required: true + type: string + - description: Parent type + enum: + - frontend + - backend + in: query + name: parent_type required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/server' + $ref: '#/definitions/log_target' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "201": - description: Server created + description: Log Target created schema: - $ref: '#/definitions/server' + $ref: '#/definitions/log_target' "202": description: Configuration change accepted and reload requested headers: @@ -4507,31 +9545,38 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/server' + $ref: '#/definitions/log_target' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new server + summary: Add a new Log Target tags: - - Server - - HAProxy configuration management - - Backend options - /services/haproxy/configuration/servers/{name}: + - LogTarget + /services/haproxy/configuration/log_targets/{index}: delete: - description: Deletes a server configuration by it's name in the specified backend. - operationId: deleteServer + description: Deletes a Log Target configuration by it's index from the specified + parent. + operationId: deleteLogTarget parameters: - - description: Server name + - description: Log Target Index in: path - name: name + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name required: true type: string - - description: Parent backend name + - description: Parent type + enum: + - frontend + - backend in: query - name: backend + name: parent_type required: true type: string - $ref: '#/parameters/transaction_id' @@ -4545,28 +9590,35 @@ paths: description: ID of the requested reload type: string "204": - description: Server deleted + description: Log Target deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a server + summary: Delete a Log Target tags: - - Server - - HAProxy configuration management - - Backend options + - LogTarget get: - description: Returns one server configuration by it's name in the specified backend. - operationId: getServer + description: Returns one Log Target configuration by it's index in the specified + parent. + operationId: getLogTarget parameters: - - description: Server name + - description: Log Target Index in: path - name: name + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name required: true type: string - - description: Parent backend name + - description: Parent type + enum: + - frontend + - backend in: query - name: backend + name: parent_type required: true type: string - $ref: '#/parameters/transaction_id' @@ -4583,44 +9635,51 @@ paths: _version: type: integer data: - $ref: '#/definitions/server' + $ref: '#/definitions/log_target' type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one server + summary: Return one Log Target tags: - - Server - - HAProxy configuration management - - Backend options + - LogTarget put: - description: Replaces a server configuration by it's name in the specified backend. - operationId: replaceServer + description: Replaces a Log Target configuration by it's index in the specified + parent. + operationId: replaceLogTarget parameters: - - description: Server name + - description: Log Target Index in: path - name: name + name: index + required: true + type: integer + - description: Parent name + in: query + name: parent_name required: true type: string - - description: Parent backend name + - description: Parent type + enum: + - frontend + - backend in: query - name: backend + name: parent_type required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/server' + $ref: '#/definitions/log_target' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "200": - description: Server replaced + description: Log Target replaced schema: - $ref: '#/definitions/server' + $ref: '#/definitions/log_target' "202": description: Configuration change accepted and reload requested headers: @@ -4628,22 +9687,20 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/server' + $ref: '#/definitions/log_target' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a server + summary: Replace a Log Target tags: - - Server - - HAProxy configuration management - - Backend options - /services/haproxy/configuration/http_request_rules: + - LogTarget + /services/haproxy/configuration/acls: get: - description: Returns all HTTP Request Rules that are configured in specified parent. - operationId: getHTTPRequestRules + description: Returns all ACL lines that are configured in specified parent. + operationId: getAcls parameters: - description: Parent name in: query @@ -4672,22 +9729,18 @@ paths: _version: type: integer data: - $ref: '#/definitions/http_request_rules' + $ref: '#/definitions/acls' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of all HTTP Request Rules + summary: Return an array of all ACL lines tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPRequestRule + - ACL post: - description: Adds a new HTTP Request Rule of the specified type in the specified - parent. - operationId: createHTTPRequestRule + description: Adds a new ACL line of the specified type in the specified parent. + operationId: createAcl parameters: - description: Parent name in: query @@ -4706,15 +9759,15 @@ paths: name: data required: true schema: - $ref: '#/definitions/http_request_rule' + $ref: '#/definitions/acl' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "201": - description: HTTP Request Rule created + description: ACL line created schema: - $ref: '#/definitions/http_request_rule' + $ref: '#/definitions/acl' "202": description: Configuration change accepted and reload requested headers: @@ -4722,28 +9775,24 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/http_request_rule' + $ref: '#/definitions/acl' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new HTTP Request Rule + summary: Add a new ACL line tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPRequestRule - /services/haproxy/configuration/http_request_rules/{id}: + - ACL + /services/haproxy/configuration/acls/{index}: delete: - description: Deletes a HTTP Request Rule configuration by it's ID from the specified - parent. - operationId: deleteHTTPRequestRule + description: Deletes a ACL line configuration by it's index from the specified parent. + operationId: deleteAcl parameters: - - description: HTTP Request Rule ID + - description: ACL line Index in: path - name: id + name: index required: true type: integer - description: Parent name @@ -4770,25 +9819,21 @@ paths: description: ID of the requested reload type: string "204": - description: HTTP Request Rule deleted + description: ACL line deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a HTTP Request Rule + summary: Delete a ACL line tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPRequestRule + - ACL get: - description: Returns one HTTP Request Rule configuration by it's ID in the specified - parent. - operationId: getHTTPRequestRule + description: Returns one ACL line configuration by it's index in the specified parent. + operationId: getAcl parameters: - - description: HTTP Request Rule ID + - description: ACL line Index in: path - name: id + name: index required: true type: integer - description: Parent name @@ -4818,26 +9863,22 @@ paths: _version: type: integer data: - $ref: '#/definitions/http_request_rule' + $ref: '#/definitions/acl' type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one HTTP Request Rule + summary: Return one ACL line tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPRequestRule + - ACL put: - description: Replaces a HTTP Request Rule configuration by it's ID in the specified - parent. - operationId: replaceHTTPRequestRule + description: Replaces a ACL line configuration by it's index in the specified parent. + operationId: replaceAcl parameters: - - description: HTTP Request Rule ID + - description: ACL line Index in: path - name: id + name: index required: true type: integer - description: Parent name @@ -4857,15 +9898,15 @@ paths: name: data required: true schema: - $ref: '#/definitions/http_request_rule' + $ref: '#/definitions/acl' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "200": - description: HTTP Request Rule replaced + description: ACL line replaced schema: - $ref: '#/definitions/http_request_rule' + $ref: '#/definitions/acl' "202": description: Configuration change accepted and reload requested headers: @@ -4873,37 +9914,21 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/http_request_rule' + $ref: '#/definitions/acl' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a HTTP Request Rule + summary: Replace a ACL line tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPRequestRule - /services/haproxy/configuration/http_response_rules: + - ACL + /services/haproxy/configuration/resolvers: get: - description: Returns all HTTP Response Rules that are configured in specified parent. - operationId: getHTTPResponseRules + description: Returns an array of all configured resolvers. + operationId: getResolvers parameters: - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type - required: true - type: string - $ref: '#/parameters/transaction_id' responses: "200": @@ -4918,49 +9943,32 @@ paths: _version: type: integer data: - $ref: '#/definitions/http_response_rules' + $ref: '#/definitions/resolvers' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of all HTTP Response Rules + summary: Return an array of resolvers tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPResponseRule + - Resolver post: - description: Adds a new HTTP Response Rule of the specified type in the specified - parent. - operationId: createHTTPResponseRule + description: Adds a new resolver section to the configuration file. + operationId: createResolver parameters: - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type - required: true - type: string - in: body name: data required: true schema: - $ref: '#/definitions/http_response_rule' + $ref: '#/definitions/resolver' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "201": - description: HTTP Response Rule created + description: Resolver created schema: - $ref: '#/definitions/http_response_rule' + $ref: '#/definitions/resolver' "202": description: Configuration change accepted and reload requested headers: @@ -4968,41 +9976,24 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/http_response_rule' + $ref: '#/definitions/resolver' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new HTTP Response Rule + summary: Add a resolver tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPResponseRule - /services/haproxy/configuration/http_response_rules/{id}: + - Resolver + /services/haproxy/configuration/resolvers/{name}: delete: - description: Deletes a HTTP Response Rule configuration by it's ID from the specified - parent. - operationId: deleteHTTPResponseRule + description: Deletes a resolver from the configuration by it's name. + operationId: deleteResolver parameters: - - description: HTTP Response Rule ID + - description: Resolver name in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type + name: name required: true type: string - $ref: '#/parameters/transaction_id' @@ -5016,38 +10007,21 @@ paths: description: ID of the requested reload type: string "204": - description: HTTP Response Rule deleted + description: Resolver deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a HTTP Response Rule + summary: Delete a resolver tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPResponseRule + - Resolver get: - description: Returns one HTTP Response Rule configuration by it's ID in the specified - parent. - operationId: getHTTPResponseRule + description: Returns one resolver section configuration by it's name. + operationId: getResolver parameters: - - description: HTTP Response Rule ID + - description: Resolver name in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type + name: name required: true type: string - $ref: '#/parameters/transaction_id' @@ -5064,54 +10038,37 @@ paths: _version: type: integer data: - $ref: '#/definitions/http_response_rule' + $ref: '#/definitions/resolver' type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one HTTP Response Rule + summary: Return a resolver tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPResponseRule + - Resolver put: - description: Replaces a HTTP Response Rule configuration by it's ID in the specified - parent. - operationId: replaceHTTPResponseRule + description: Replaces a resolver configuration by it's name. + operationId: replaceResolver parameters: - - description: HTTP Response Rule ID + - description: Resolver name in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type + name: name required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/http_response_rule' + $ref: '#/definitions/resolver' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "200": - description: HTTP Response Rule replaced + description: Resolver replaced schema: - $ref: '#/definitions/http_response_rule' + $ref: '#/definitions/resolver' "202": description: Configuration change accepted and reload requested headers: @@ -5119,36 +10076,24 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/http_response_rule' + $ref: '#/definitions/resolver' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a HTTP Response Rule + summary: Replace a resolver tags: - - HAProxy configuration management - - Backend options - - Frontend options - - HTTPResponseRule - /services/haproxy/configuration/tcp_request_rules: + - Resolver + /services/haproxy/configuration/nameservers: get: - description: Returns all TCP Request Rules that are configured in specified parent - and parent type. - operationId: getTCPRequestRules + description: Returns an array of all configured nameservers. + operationId: getNameservers parameters: - - description: Parent name + - description: Parent resolver name in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type + name: resolver required: true type: string - $ref: '#/parameters/transaction_id' @@ -5165,49 +10110,37 @@ paths: _version: type: integer data: - $ref: '#/definitions/tcp_request_rules' + $ref: '#/definitions/nameservers' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of all TCP Request Rules + summary: Return an array of nameservers tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPRequestRule + - Nameserver post: - description: Adds a new TCP Request Rule of the specified type in the specified - parent. - operationId: createTCPRequestRule + description: Adds a new nameserver to the resolvers section. + operationId: createNameserver parameters: - - description: Parent name + - description: Parent resolver name in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type + name: resolver required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/tcp_request_rule' + $ref: '#/definitions/nameserver' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "201": - description: TCP Request Rule created + description: Nameserver created schema: - $ref: '#/definitions/tcp_request_rule' + $ref: '#/definitions/nameserver' "202": description: Configuration change accepted and reload requested headers: @@ -5215,41 +10148,29 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/tcp_request_rule' + $ref: '#/definitions/nameserver' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new TCP Request Rule + summary: Add a nameserver tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPRequestRule - /services/haproxy/configuration/tcp_request_rules/{id}: + - Nameserver + /services/haproxy/configuration/nameservers/{name}: delete: - description: Deletes a TCP Request Rule configuration by it's ID from the specified - parent. - operationId: deleteTCPRequestRule + description: Deletes a nameserver from the resolvers section by it's name. + operationId: deleteNameserver parameters: - - description: TCP Request Rule ID + - description: Nameserver name in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name + name: name required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Parent resolver name in: query - name: parent_type + name: resolver required: true type: string - $ref: '#/parameters/transaction_id' @@ -5263,38 +10184,26 @@ paths: description: ID of the requested reload type: string "204": - description: TCP Request Rule deleted + description: Nameserver deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a TCP Request Rule + summary: Delete a nameserver tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPRequestRule + - Nameserver get: - description: Returns one TCP Request Rule configuration by it's ID in the specified - parent. - operationId: getTCPRequestRule + description: Returns one nameserver configuration by it's name. + operationId: getNameserver parameters: - - description: TCP Request Rule ID + - description: Nameserver name in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name + name: name required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Parent resolver name in: query - name: parent_type + name: resolver required: true type: string - $ref: '#/parameters/transaction_id' @@ -5311,54 +10220,42 @@ paths: _version: type: integer data: - $ref: '#/definitions/tcp_request_rule' + $ref: '#/definitions/nameserver' type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one TCP Request Rule + summary: Return a nameserver tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPRequestRule + - Nameserver put: - description: Replaces a TCP Request Rule configuration by it's ID in the specified - parent. - operationId: replaceTCPRequestRule + description: Replaces a nameserver configuration by it's name. + operationId: replaceNameserver parameters: - - description: TCP Request Rule ID + - description: Nameserver name in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name + name: name required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Parent resolver name in: query - name: parent_type + name: resolver required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/tcp_request_rule' + $ref: '#/definitions/nameserver' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - $ref: '#/parameters/force_reload' responses: "200": - description: TCP Request Rule replaced + description: Nameserver replaced schema: - $ref: '#/definitions/tcp_request_rule' + $ref: '#/definitions/nameserver' "202": description: Configuration change accepted and reload requested headers: @@ -5366,60 +10263,197 @@ paths: description: ID of the requested reload type: string schema: - $ref: '#/definitions/tcp_request_rule' + $ref: '#/definitions/nameserver' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a TCP Request Rule + summary: Replace a nameserver tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPRequestRule - /services/haproxy/configuration/tcp_response_rules: + - Nameserver + /services/haproxy/configuration/raw: get: - description: Returns all TCP Response Rules that are configured in specified backend. - operationId: getTCPResponseRules + description: Returns HAProxy configuration file in plain text + operationId: getHAProxyConfiguration + parameters: + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' + produces: + - application/json + responses: + "200": + description: Operation successful + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + properties: + _version: + type: integer + data: + type: string + required: + - data + type: object + default: + $ref: '#/responses/DefaultError' + summary: Return HAProxy configuration + tags: + - Configuration + post: + consumes: + - text/plain + description: Push a new haproxy configuration file in plain text + operationId: postHAProxyConfiguration + parameters: + - in: body + name: data + required: true + schema: + type: string + - default: false + description: If set, no version check will be done and the pushed config will + be enforced + in: query + name: skip_version + required: false + type: boolean + - default: false + description: If set, no reload will be initiated and runtime actions from X-Runtime-Actions + will be applied + in: query + name: skip_reload + required: false + type: boolean + - default: false + description: If set, only validates configuration, without applying it + in: query + name: only_validate + required: false + type: boolean + - description: List of Runtime API commands with parameters separated by ';' + in: header + name: X-Runtime-Actions + required: false + type: string + - $ref: '#/parameters/version' + - $ref: '#/parameters/force_reload' + produces: + - application/json + responses: + "201": + description: New HAProxy configuration pushed + schema: + type: string + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + type: string + "400": + $ref: '#/responses/BadRequest' + default: + $ref: '#/responses/DefaultError' + summary: Push new haproxy configuration + tags: + - Configuration + /services/haproxy/runtime: + get: + description: Returns a list of endpoints to be used for advanced runtime settings + of HAProxy objects. + operationId: getRuntimeEndpoints + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/endpoints' + default: + $ref: '#/responses/DefaultError' + summary: Return list of HAProxy advanced runtime endpoints + tags: + - Discovery + /services/haproxy/runtime/info: + get: + description: Return HAProxy process information + operationId: getHaproxyProcessInfo + produces: + - application/json + responses: + "200": + description: Success + schema: + $ref: '#/definitions/process_infos' + default: + $ref: '#/responses/DefaultError' + summary: Return HAProxy process information + tags: + - Information + /services/haproxy/runtime/servers: + get: + description: Returns an array of all servers' runtime settings. + operationId: getRuntimeServers + parameters: + - description: Parent backend name + in: query + name: backend + required: true + type: string + responses: + "200": + description: Successful operation + schema: + $ref: '#/definitions/runtime_servers' + default: + $ref: '#/responses/DefaultError' + summary: Return an array of runtime servers' settings + tags: + - Server + /services/haproxy/runtime/servers/{name}: + get: + description: Returns one server runtime settings by it's name in the specified backend. + operationId: getRuntimeServer parameters: + - description: Server name + in: path + name: name + required: true + type: string - description: Parent backend name in: query name: backend required: true type: string - - $ref: '#/parameters/transaction_id' responses: "200": description: Successful operation - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false schema: - properties: - _version: - type: integer - data: - $ref: '#/definitions/tcp_response_rules' - required: - - data - type: object + $ref: '#/definitions/runtime_server' + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return an array of all TCP Response Rules + summary: Return one server runtime settings tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPResponseRule - post: - description: Adds a new TCP Response Rule of the specified type in the specified + - Server + put: + description: Replaces a server transient settings by it's name in the specified backend. - operationId: createTCPResponseRule + operationId: replaceRuntimeServer parameters: + - description: Server name + in: path + name: name + required: true + type: string - description: Parent backend name in: query name: backend @@ -5429,734 +10463,670 @@ paths: name: data required: true schema: - $ref: '#/definitions/tcp_response_rule' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' + $ref: '#/definitions/runtime_server' responses: - "201": - description: TCP Response Rule created - schema: - $ref: '#/definitions/tcp_response_rule' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + "200": + description: Server transient settings replaced schema: - $ref: '#/definitions/tcp_response_rule' + $ref: '#/definitions/runtime_server' "400": $ref: '#/responses/BadRequest' - "409": - $ref: '#/responses/AlreadyExists' + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Add a new TCP Response Rule + summary: Replace server transient settings tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPResponseRule - /services/haproxy/configuration/tcp_response_rules/{id}: - delete: - description: Deletes a TCP Response Rule configuration by it's ID from the specified - backend. - operationId: deleteTCPResponseRule + - Server + /services/haproxy/runtime/stick_tables: + get: + description: Returns an array of all stick tables. + operationId: getStickTables + parameters: + - description: Process number if master-worker mode, if not all processes are returned + in: query + name: process + type: integer + responses: + "200": + description: Successful operation + schema: + $ref: '#/definitions/stick_tables' + default: + $ref: '#/responses/DefaultError' + summary: Return Stick Tables + tags: + - StickTable + /services/haproxy/runtime/stick_tables/{name}: + get: + description: Returns one stick table from runtime. + operationId: getStickTable parameters: - - description: TCP Response Rule ID + - description: Stick table name in: path - name: id + name: name required: true - type: integer - - description: Parent backend name + type: string + - description: Process number if master-worker mode, if not only first process is + returned in: query - name: backend + name: process required: true - type: string - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' + type: integer responses: - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string - "204": - description: TCP Response Rule deleted + "200": + description: Successful operation + schema: + $ref: '#/definitions/stick_table' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a TCP Response Rule + summary: Return Stick Table tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPResponseRule + - StickTable + /services/haproxy/runtime/stick_table_entries: get: - description: Returns one TCP Response Rule configuration by it's ID in the specified - backend. - operationId: getTCPResponseRule + description: Returns an array of all entries in a given stick tables. + operationId: getStickTableEntries parameters: - - description: TCP Response Rule ID - in: path - name: id + - description: Stick table name + in: query + name: stick_table required: true - type: integer - - description: Parent backend name + type: string + - description: Process number if master-worker mode, if not only first process is + returned in: query - name: backend + name: process required: true + type: integer + - description: A list of filters in format data. separated + by comma + in: query + name: filter type: string - - $ref: '#/parameters/transaction_id' + - description: Key which we want the entries for + in: query + name: key + type: string + - description: Max number of entries to be returned for pagination + in: query + name: count + type: integer + - description: Offset which indicates how many items we skip in pagination + in: query + name: offset + type: integer responses: "200": description: Successful operation - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false schema: - properties: - _version: - type: integer - data: - $ref: '#/definitions/tcp_response_rule' - type: object + $ref: '#/definitions/stick_table_entries' + default: + $ref: '#/responses/DefaultError' + summary: Return Stick Table Entries + tags: + - StickTable + /services/haproxy/runtime/maps: + get: + description: Returns runtime map files. + operationId: getAllRuntimeMapFiles + parameters: + - default: false + description: If true, also show unmanaged map files loaded in haproxy + in: query + name: include_unmanaged + required: false + type: boolean + responses: + "200": + description: Successful operation + schema: + $ref: '#/definitions/maps' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one TCP Response Rule + summary: Return runtime map files tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPResponseRule - put: - description: Replaces a TCP Response Rule configuration by it's ID in the specified - backend. - operationId: replaceTCPResponseRule + - Maps + /services/haproxy/runtime/maps/{name}: + delete: + description: Remove all map entries from the map file. + operationId: clearRuntimeMap parameters: - - description: TCP Response Rule ID + - description: Map file name in: path - name: id + name: name required: true - type: integer - - description: Parent backend name + type: string + - description: If true, deletes file from disk in: query - name: backend + name: forceDelete + type: boolean + - default: false + description: If true, immediately syncs changes to disk + in: query + name: force_sync + type: boolean + responses: + "204": + description: All map entries deleted + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Remove all map entries from the map file + tags: + - Maps + get: + description: Returns one runtime map file. + operationId: getOneRuntimeMap + parameters: + - description: Map file name + in: path + name: name required: true type: string - - in: body - name: data - required: true - schema: - $ref: '#/definitions/tcp_response_rule' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: "200": - description: TCP Response Rule replaced - schema: - $ref: '#/definitions/tcp_response_rule' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: Successful operation schema: - $ref: '#/definitions/tcp_response_rule' - "400": - $ref: '#/responses/BadRequest' + $ref: '#/definitions/map' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a TCP Response Rule + summary: Return one runtime map file tags: - - HAProxy configuration management - - Backend options - - Frontend options - - TCPResponseRule - /services/haproxy/configuration/backend_switching_rules: + - Maps + /services/haproxy/runtime/maps_entries: get: - description: Returns all Backend Switching Rules that are configured in specified - frontend. - operationId: getBackendSwitchingRules + description: Returns an array of all entries in a given runtime map file. + operationId: showRuntimeMap parameters: - - description: Frontend name + - description: Mapfile attribute storage_name in: query - name: frontend + name: map required: true type: string - - $ref: '#/parameters/transaction_id' responses: "200": description: Successful operation - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false schema: - properties: - _version: - type: integer - data: - $ref: '#/definitions/backend_switching_rules' - required: - - data - type: object + $ref: '#/definitions/map_entries' + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return an array of all Backend Switching Rules + summary: Return one map runtime entries tags: - - HAProxy configuration management - - Frontend options - - BackendSwitchingRule + - Maps post: - description: Adds a new Backend Switching Rule of the specified type in the specified - frontend. - operationId: createBackendSwitchingRule + description: Adds an entry into the map file. + operationId: addMapEntry parameters: - - description: Frontend name + - description: Mapfile attribute storage_name in: query - name: frontend + name: map required: true type: string + - default: false + description: If true, immediately syncs changes to disk + in: query + name: force_sync + type: boolean - in: body name: data required: true schema: - $ref: '#/definitions/backend_switching_rule' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' + $ref: '#/definitions/map_entry' responses: "201": - description: Backend Switching Rule created - schema: - $ref: '#/definitions/backend_switching_rule' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: Map entry created schema: - $ref: '#/definitions/backend_switching_rule' + $ref: '#/definitions/map_entry' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new Backend Switching Rule + summary: Adds an entry into the map file tags: - - HAProxy configuration management - - Frontend options - - BackendSwitchingRule - /services/haproxy/configuration/backend_switching_rules/{id}: + - Maps + /services/haproxy/runtime/maps_entries/{id}: delete: - description: Deletes a Backend Switching Rule configuration by it's ID from the - specified frontend. - operationId: deleteBackendSwitchingRule + description: Delete all the map entries from the map by its id. + operationId: deleteRuntimeMapEntry parameters: - - description: Switching Rule ID + - description: Map id in: path name: id required: true - type: integer - - description: Frontend name + type: string + - description: Mapfile attribute storage_name in: query - name: frontend + name: map required: true type: string - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' + - default: false + description: If true, immediately syncs changes to disk + in: query + name: force_sync + type: boolean responses: - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string "204": - description: Backend Switching Rule deleted + description: Map key/value deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a Backend Switching Rule + summary: Deletes all the map entries from the map by its id tags: - - HAProxy configuration management - - Frontend options - - BackendSwitchingRule + - Maps get: - description: Returns one Backend Switching Rule configuration by it's ID in the - specified frontend. - operationId: getBackendSwitchingRule + description: Returns one map runtime setting by it's id. + operationId: getRuntimeMapEntry parameters: - - description: Switching Rule ID + - description: Map id in: path name: id required: true - type: integer - - description: Frontend name + type: string + - description: Mapfile attribute storage_name in: query - name: frontend + name: map required: true type: string - - $ref: '#/parameters/transaction_id' responses: "200": description: Successful operation - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false schema: - properties: - _version: - type: integer - data: - $ref: '#/definitions/backend_switching_rule' - type: object + $ref: '#/definitions/map_entry' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one Backend Switching Rule + summary: Return one map runtime setting tags: - - HAProxy configuration management - - Frontend options - - BackendSwitchingRule + - Maps put: - description: Replaces a Backend Switching Rule configuration by it's ID in the specified - frontend. - operationId: replaceBackendSwitchingRule + description: Replaces the value corresponding to each id in a map. + operationId: replaceRuntimeMapEntry parameters: - - description: Switching Rule ID + - description: Map id in: path name: id required: true - type: integer - - description: Frontend name + type: string + - description: Mapfile attribute storage_name in: query - name: frontend + name: map required: true type: string + - default: false + description: If true, immediately syncs changes to disk + in: query + name: force_sync + type: boolean - in: body name: data required: true schema: - $ref: '#/definitions/backend_switching_rule' + properties: + value: + description: Map value + type: string + required: + - value + type: object + responses: + "200": + description: Map value replaced + schema: + $ref: '#/definitions/map_entry' + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace the value corresponding to each id in a map + tags: + - Maps + /services/haproxy/configuration/version: + get: + description: Returns configuration version. + operationId: getConfigurationVersion + parameters: - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: "200": - description: Backend Switching Rule replaced + description: Configuration version schema: - $ref: '#/definitions/backend_switching_rule' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + type: integer + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return a configuration version + tags: + - Configuration + /services/haproxy/storage/maps: + get: + description: Returns a list of all managed map files + operationId: getAllStorageMapFiles + responses: + "200": + description: Successful operation schema: - $ref: '#/definitions/backend_switching_rule' + $ref: '#/definitions/maps' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return a list of all managed map files + tags: + - Storage + post: + consumes: + - multipart/form-data + description: Creates a managed runtime map file with its entries. + operationId: createRuntimeMap + parameters: + - description: The map file contents + in: formData + name: file_upload + type: file + x-mimetype: text/plain + responses: + "201": + description: Map file created with its entries + schema: + $ref: '#/definitions/map' "400": $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' + default: + $ref: '#/responses/DefaultError' + summary: Creates a managed runtime map file with its entries + tags: + - Storage + /services/haproxy/storage/maps/{name}: + delete: + description: Deletes a managed map file from disk. + operationId: deleteStorageMap + parameters: + - description: Map file storage_name + in: path + name: name + required: true + type: string + responses: + "204": + description: Map file deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a Backend Switching Rule + summary: Deletes a managed map file from disk tags: - - HAProxy configuration management - - Frontend options - - BackendSwitchingRule - /services/haproxy/configuration/server_switching_rules: + - Storage get: - description: Returns all Backend Switching Rules that are configured in specified - backend. - operationId: getServerSwitchingRules + description: Returns the contents of one managed map file from disk + operationId: getOneStorageMap parameters: - - description: Backend name - in: query - name: backend + - description: Map file storage_name + in: path + name: name required: true type: string - - $ref: '#/parameters/transaction_id' + produces: + - application/octet-stream responses: "200": description: Successful operation - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false schema: - properties: - _version: - type: integer - data: - $ref: '#/definitions/server_switching_rules' - required: - - data - type: object + type: file + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return an array of all Server Switching Rules + summary: Return the contents of one managed map file from disk tags: - - HAProxy configuration management - - Backend options - - ServerSwitchingRule - post: - description: Adds a new Server Switching Rule of the specified type in the specified - backend. - operationId: createServerSwitchingRule + - Storage + put: + consumes: + - text/plain + description: Replaces the contents of a managed map file on disk + operationId: replaceStorageMapFile parameters: - - description: Backend name - in: query - name: backend + - description: Map file storage_name + in: path + name: name required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/server_switching_rule' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' + type: string - $ref: '#/parameters/force_reload' + produces: + - application/json responses: - "201": - description: Server Switching Rule created - schema: - $ref: '#/definitions/server_switching_rule' "202": description: Configuration change accepted and reload requested headers: Reload-ID: description: ID of the requested reload type: string + "204": + description: Map file replaced + "400": + $ref: '#/responses/BadRequest' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Replace contents of a managed map file on disk + tags: + - Storage + /services/haproxy/storage/ssl_certificates: + get: + description: Returns all available SSL certificates on disk. + operationId: getAllStorageSSLCertificates + responses: + "200": + description: Successful operation schema: - $ref: '#/definitions/server_switching_rule' + $ref: '#/definitions/ssl_certificates' + "404": + $ref: '#/responses/NotFound' + default: + $ref: '#/responses/DefaultError' + summary: Return all available SSL certificates on disk + tags: + - Storage + post: + consumes: + - multipart/form-data + description: Creates SSL certificate. + operationId: createStorageSSLCertificate + parameters: + - description: The SSL certificate to upload + in: formData + name: file_upload + type: file + x-mimetype: text/plain + - $ref: '#/parameters/force_reload' + responses: + "201": + description: SSL certificate created + schema: + $ref: '#/definitions/ssl_certificate' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new Server Switching Rule + summary: Create SSL certificate tags: - - HAProxy configuration management - - Backend options - - ServerSwitchingRule - /services/haproxy/configuration/server_switching_rules/{id}: + - Storage + /services/haproxy/storage/ssl_certificates/{name}: delete: - description: Deletes a Server Switching Rule configuration by it's ID from the specified - backend. - operationId: deleteServerSwitchingRule + description: Deletes SSL certificate from disk. + operationId: deleteStorageSSLCertificate parameters: - - description: Switching Rule ID + - description: SSL certificate name in: path - name: id - required: true - type: integer - - description: Backend name - in: query - name: backend + name: name required: true type: string - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string "204": - description: Server Switching Rule deleted + description: SSL certificate deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a Server Switching Rule + summary: Delete SSL certificate from disk tags: - - HAProxy configuration management - - Backend options - - ServerSwitchingRule + - Storage get: - description: Returns one Server Switching Rule configuration by it's ID in the specified - backend. - operationId: getServerSwitchingRule + description: Returns one SSL certificate from disk. + operationId: getOneStorageSSLCertificate parameters: - - description: Switching Rule ID + - description: SSL certificate name in: path - name: id - required: true - type: integer - - description: Backend name - in: query - name: backend + name: name required: true type: string - - $ref: '#/parameters/transaction_id' responses: "200": description: Successful operation - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false schema: - properties: - _version: - type: integer - data: - $ref: '#/definitions/server_switching_rule' - type: object + $ref: '#/definitions/ssl_certificate' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one Server Switching Rule + summary: Return one SSL certificate from disk tags: - - HAProxy configuration management - - Backend options - - ServerSwitchingRule + - Storage put: - description: Replaces a Server Switching Rule configuration by it's ID in the specified - backend. - operationId: replaceServerSwitchingRule + consumes: + - text/plain + description: Replaces SSL certificate on disk. + operationId: replaceStorageSSLCertificate parameters: - - description: Switching Rule ID + - description: SSL certificate name in: path - name: id - required: true - type: integer - - description: Backend name - in: query - name: backend + name: name required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/server_switching_rule' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' + type: string - $ref: '#/parameters/force_reload' + produces: + - application/json responses: - "200": - description: Server Switching Rule replaced - schema: - $ref: '#/definitions/server_switching_rule' "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: SSL certificate replaced schema: - $ref: '#/definitions/server_switching_rule' + $ref: '#/definitions/ssl_certificate' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a Server Switching Rule + summary: Replace SSL certificates on disk tags: - - HAProxy configuration management - - Backend options - - ServerSwitchingRule - /services/haproxy/configuration/filters: + - Storage + /services/haproxy/spoe/spoe_files: get: - description: Returns all Filters that are configured in specified parent. - operationId: getFilters - parameters: - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type - required: true - type: string - - $ref: '#/parameters/transaction_id' + description: Returns all available SPOE files. + operationId: getAllSpoeFiles responses: "200": description: Successful operation - headers: - Configuration-Version: - description: Configuration file version - type: integer - x-nullable: false schema: - properties: - _version: - type: integer - data: - $ref: '#/definitions/filters' - required: - - data - type: object + $ref: '#/definitions/spoe_files' + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return an array of all Filters + summary: Return all available SPOE files tags: - - HAProxy configuration management - - Backend options - - Frontend options - - Filter + - Spoe post: - description: Adds a new Filter of the specified type in the specified parent. - operationId: createFilter + consumes: + - multipart/form-data + description: Creates SPOE file with its entries. + operationId: createSpoe parameters: - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type - required: true - type: string - - in: body - name: data - required: true - schema: - $ref: '#/definitions/filter' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' + - description: The spoe file to upload + in: formData + name: file_upload + type: file + x-mimetype: text/plain responses: "201": - description: Filter created - schema: - $ref: '#/definitions/filter' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: SPOE file created with its entries schema: - $ref: '#/definitions/filter' + type: string "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new Filter + summary: Creates SPOE file with its entries tags: - - HAProxy configuration management - - Backend options - - Frontend options - - Filter - /services/haproxy/configuration/filters/{id}: + - Spoe + /services/haproxy/spoe/spoe_files/{name}: delete: - description: Deletes a Filter configuration by it's ID from the specified parent. - operationId: deleteFilter + description: Deletes SPOE file. + operationId: deleteSpoeFile parameters: - - description: Filter ID + - description: SPOE file name in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type + name: name required: true type: string - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string "204": - description: Filter deleted + description: SPOE file deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a Filter + summary: Delete SPOE file tags: - - HAProxy configuration management - - Backend options - - Frontend options - - Filter + - Spoe get: - description: Returns one Filter configuration by it's ID in the specified parent. - operationId: getFilter + description: Returns one SPOE file. + operationId: getOneSpoeFile parameters: - - description: Filter ID + - description: SPOE file name in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type + name: name required: true type: string - - $ref: '#/parameters/transaction_id' responses: "200": description: Successful operation headers: Configuration-Version: - description: Configuration file version + description: Spoe configuration file version type: integer x-nullable: false schema: @@ -6164,81 +11134,23 @@ paths: _version: type: integer data: - $ref: '#/definitions/filter' + type: string type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one Filter - tags: - - HAProxy configuration management - - Backend options - - Frontend options - - Filter - put: - description: Replaces a Filter configuration by it's ID in the specified parent. - operationId: replaceFilter - parameters: - - description: Filter ID - in: path - name: id - required: true - type: integer - - description: Parent name - in: query - name: parent_name - required: true - type: string - - description: Parent type - enum: - - frontend - - backend - in: query - name: parent_type - required: true - type: string - - in: body - name: data - required: true - schema: - $ref: '#/definitions/filter' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' - responses: - "200": - description: Filter replaced - schema: - $ref: '#/definitions/filter' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string - schema: - $ref: '#/definitions/filter' - "400": - $ref: '#/responses/BadRequest' - "404": - $ref: '#/responses/NotFound' - default: - $ref: '#/responses/DefaultError' - summary: Replace a Filter + summary: Return one SPOE file tags: - - HAProxy configuration management - - Backend options - - Frontend options - - Filter - /services/haproxy/configuration/stick_rules: + - Spoe + /services/haproxy/spoe/spoe_scopes: get: - description: Returns all Stick Rules that are configured in specified backend. - operationId: getStickRules + description: Returns an array of all configured spoe scopes. + operationId: getSpoeScopes parameters: - - description: Backend name + - description: Spoe file name in: query - name: backend + name: spoe required: true type: string - $ref: '#/parameters/transaction_id' @@ -6247,7 +11159,7 @@ paths: description: Successful operation headers: Configuration-Version: - description: Configuration file version + description: Spoe configuration file version type: integer x-nullable: false schema: @@ -6255,106 +11167,84 @@ paths: _version: type: integer data: - $ref: '#/definitions/stick_rules' + $ref: '#/definitions/spoe_scopes' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of all Stick Rules + summary: Return an array of spoe scopes tags: - - HAProxy configuration management - - Backend options - - StickRule + - Spoe post: - description: Adds a new Stick Rule of the specified type in the specified backend. - operationId: createStickRule + description: Adds a new spoe scope. + operationId: createSpoeScope parameters: - - description: Backend name + - description: Spoe file name in: query - name: backend + name: spoe required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/stick_rule' + $ref: '#/definitions/spoe_scope' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: "201": - description: Stick Rule created - schema: - $ref: '#/definitions/stick_rule' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: Spoe scope created schema: - $ref: '#/definitions/stick_rule' + $ref: '#/definitions/spoe_scope' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new Stick Rule + summary: Add a new spoe scope tags: - - HAProxy configuration management - - Backend options - - StickRule - /services/haproxy/configuration/stick_rules/{id}: + - Spoe + /services/haproxy/spoe/spoe_scopes/{name}: delete: - description: Deletes a Stick Rule configuration by it's ID from the specified backend. - operationId: deleteStickRule + description: Deletes a SPOE scope from the configuration file. + operationId: deleteSpoeScope parameters: - - description: Stick Rule ID - in: path - name: id - required: true - type: integer - - description: Backend name + - description: Spoe file name in: query - name: backend + name: spoe + required: true + type: string + - description: Spoe scope name + in: path + name: name required: true type: string - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string "204": - description: Stick Rule deleted + description: Spoe scope deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a Stick Rule + summary: Delete a SPOE scope tags: - - HAProxy configuration management - - Backend options - - StickRule + - Spoe get: - description: Returns one Stick Rule configuration by it's ID in the specified backend. - operationId: getStickRule + description: Returns one SPOE scope in one SPOE file. + operationId: getSpoeScope parameters: - - description: Stick Rule ID - in: path - name: id - required: true - type: integer - - description: Backend name + - description: Spoe file name in: query - name: backend + name: spoe + required: true + type: string + - description: Spoe scope + in: path + name: name required: true type: string - $ref: '#/parameters/transaction_id' @@ -6363,7 +11253,7 @@ paths: description: Successful operation headers: Configuration-Version: - description: Configuration file version + description: Spoe configuration file version type: integer x-nullable: false schema: @@ -6371,79 +11261,30 @@ paths: _version: type: integer data: - $ref: '#/definitions/stick_rule' + $ref: '#/definitions/spoe_scope' + required: + - data type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one Stick Rule - tags: - - HAProxy configuration management - - Backend options - - StickRule - put: - description: Replaces a Stick Rule configuration by it's ID in the specified backend. - operationId: replaceStickRule - parameters: - - description: Stick Rule ID - in: path - name: id - required: true - type: integer - - description: Backend name - in: query - name: backend - required: true - type: string - - in: body - name: data - required: true - schema: - $ref: '#/definitions/stick_rule' - - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' - responses: - "200": - description: Stick Rule replaced - schema: - $ref: '#/definitions/stick_rule' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string - schema: - $ref: '#/definitions/stick_rule' - "400": - $ref: '#/responses/BadRequest' - "404": - $ref: '#/responses/NotFound' - default: - $ref: '#/responses/DefaultError' - summary: Replace a Stick Rule + summary: Return one SPOE scope tags: - - HAProxy configuration management - - Backend options - - StickRule - /services/haproxy/configuration/log_targets: + - Spoe + /services/haproxy/spoe/spoe_agents: get: - description: Returns all Log Targets that are configured in specified parent. - operationId: getLogTargets + description: Returns an array of all configured spoe agents in one scope. + operationId: getSpoeAgents parameters: - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope required: true type: string - $ref: '#/parameters/transaction_id' @@ -6452,7 +11293,7 @@ paths: description: Successful operation headers: Configuration-Version: - description: Configuration file version + description: Spoe configuration file version type: integer x-nullable: false schema: @@ -6460,133 +11301,99 @@ paths: _version: type: integer data: - $ref: '#/definitions/log_targets' + $ref: '#/definitions/spoe_agents' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of all Log Targets + summary: Return an array of spoe agents in one scope tags: - - HAProxy configuration management - - Backend options - - Frontend options - - LogTarget + - Spoe post: - description: Adds a new Log Target of the specified type in the specified parent. - operationId: createLogTarget + description: Adds a new spoe agent to the spoe scope. + operationId: createSpoeAgent parameters: - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/log_target' + $ref: '#/definitions/spoe_agent' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: "201": - description: Log Target created - schema: - $ref: '#/definitions/log_target' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: Spoe agent created schema: - $ref: '#/definitions/log_target' + $ref: '#/definitions/spoe_agent' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new Log Target + summary: Add a new spoe agent to scope tags: - - HAProxy configuration management - - Backend options - - Frontend options - - LogTarget - /services/haproxy/configuration/log_targets/{id}: + - Spoe + /services/haproxy/spoe/spoe_agents/{name}: delete: - description: Deletes a Log Target configuration by it's ID from the specified parent. - operationId: deleteLogTarget + description: Deletes a SPOE agent from the configuration in one SPOE scope. + operationId: deleteSpoeAgent parameters: - - description: Log Target ID - in: path - name: id - required: true - type: integer - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope + required: true + type: string + - description: Spoe agent name + in: path + name: name required: true type: string - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string "204": - description: Log Target deleted + description: Spoe agent deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a Log Target + summary: Delete a SPOE agent tags: - - HAProxy configuration management - - Backend options - - Frontend options - - LogTarget + - Spoe get: - description: Returns one Log Target configuration by it's ID in the specified parent. - operationId: getLogTarget + description: Returns one spoe agent configuration in one SPOE scope. + operationId: getSpoeAgent parameters: - - description: Log Target ID - in: path - name: id - required: true - type: integer - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope + required: true + type: string + - description: Spoe agent name + in: path + name: name required: true type: string - $ref: '#/parameters/transaction_id' @@ -6595,7 +11402,7 @@ paths: description: Successful operation headers: Configuration-Version: - description: Configuration file version + description: Spoe configuration file version type: integer x-nullable: false schema: @@ -6603,89 +11410,70 @@ paths: _version: type: integer data: - $ref: '#/definitions/log_target' + $ref: '#/definitions/spoe_agent' + required: + - data type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one Log Target + summary: Return a spoe agent tags: - - HAProxy configuration management - - Backend options - - Frontend options - - LogTarget + - Spoe put: - description: Replaces a Log Target configuration by it's ID in the specified parent. - operationId: replaceLogTarget + description: Replaces a SPOE agent configuration in one SPOE scope. + operationId: replaceSpoeAgent parameters: - - description: Log Target ID - in: path - name: id - required: true - type: integer - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope + required: true + type: string + - description: Spoe agent name + in: path + name: name required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/log_target' + $ref: '#/definitions/spoe_agent' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: "200": - description: Log Target replaced - schema: - $ref: '#/definitions/log_target' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: Spoe agent replaced schema: - $ref: '#/definitions/log_target' + $ref: '#/definitions/spoe_agent' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a Log Target + summary: Replace a SPOE agent tags: - - HAProxy configuration management - - Backend options - - Frontend options - - LogTarget - /services/haproxy/configuration/acls: + - Spoe + /services/haproxy/spoe/spoe_messages: get: - description: Returns all ACL lines that are configured in specified parent. - operationId: getAcls + description: Returns an array of all configured spoe messages in one scope. + operationId: getSpoeMessages parameters: - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope required: true type: string - $ref: '#/parameters/transaction_id' @@ -6694,7 +11482,7 @@ paths: description: Successful operation headers: Configuration-Version: - description: Configuration file version + description: Spoe configuration file version type: integer x-nullable: false schema: @@ -6702,133 +11490,99 @@ paths: _version: type: integer data: - $ref: '#/definitions/acls' + $ref: '#/definitions/spoe_messages' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return an array of all ACL lines + summary: Return an array of spoe messages in one scope tags: - - HAProxy configuration management - - Backend options - - Frontend options - - ACL + - Spoe post: - description: Adds a new ACL line of the specified type in the specified parent. - operationId: createAcl + description: Adds a new spoe message to the spoe scope. + operationId: createSpoeMessage parameters: - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/acl' + $ref: '#/definitions/spoe_message' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: "201": - description: ACL line created - schema: - $ref: '#/definitions/acl' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: Spoe message created schema: - $ref: '#/definitions/acl' + $ref: '#/definitions/spoe_message' "400": $ref: '#/responses/BadRequest' "409": $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Add a new ACL line + summary: Add a new spoe message to scope tags: - - HAProxy configuration management - - Backend options - - Frontend options - - ACL - /services/haproxy/configuration/acls/{id}: + - Spoe + /services/haproxy/spoe/spoe_messages/{name}: delete: - description: Deletes a ACL line configuration by it's ID from the specified parent. - operationId: deleteAcl + description: Deletes a spoe message from the SPOE scope. + operationId: deleteSpoeMessage parameters: - - description: ACL line ID - in: path - name: id - required: true - type: integer - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope + required: true + type: string + - description: Spoe message name + in: path + name: name required: true type: string - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string "204": - description: ACL line deleted + description: Spoe message deleted "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Delete a ACL line + summary: Delete a spoe message tags: - - HAProxy configuration management - - Backend options - - Frontend options - - ACL + - Spoe get: - description: Returns one ACL line configuration by it's ID in the specified parent. - operationId: getAcl + description: Returns one spoe message configuration in SPOE scope. + operationId: getSpoeMessage parameters: - - description: ACL line ID - in: path - name: id - required: true - type: integer - - description: Parent name + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope + required: true + type: string + - description: Spoe message name + in: path + name: name required: true type: string - $ref: '#/parameters/transaction_id' @@ -6837,7 +11591,7 @@ paths: description: Successful operation headers: Configuration-Version: - description: Configuration file version + description: Spoe configuration file version type: integer x-nullable: false schema: @@ -6845,88 +11599,79 @@ paths: _version: type: integer data: - $ref: '#/definitions/acl' + $ref: '#/definitions/spoe_message' + required: + - data type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one ACL line + summary: Return a spoe message tags: - - HAProxy configuration management - - Backend options - - Frontend options - - ACL + - Spoe put: - description: Replaces a ACL line configuration by it's ID in the specified parent. - operationId: replaceAcl - parameters: - - description: ACL line ID - in: path - name: id - required: true - type: integer - - description: Parent name + description: Replaces a spoe message configuration in one SPOE scope. + operationId: replaceSpoeMessage + parameters: + - description: Spoe file name in: query - name: parent_name + name: spoe required: true type: string - - description: Parent type - enum: - - frontend - - backend + - description: Spoe scope in: query - name: parent_type + name: scope + required: true + type: string + - description: Spoe message name + in: path + name: name required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/acl' + $ref: '#/definitions/spoe_message' - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' responses: "200": - description: ACL line replaced - schema: - $ref: '#/definitions/acl' - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: Spoe message replaced schema: - $ref: '#/definitions/acl' + $ref: '#/definitions/spoe_message' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace a ACL line + summary: Replace a spoe message tags: - - HAProxy configuration management - - Backend options - - Frontend options - - ACL - /services/haproxy/configuration/raw: + - Spoe + /services/haproxy/spoe/spoe_groups: get: - description: Returns HAProxy configuration file in plain text - operationId: getHAProxyConfiguration + description: Returns an array of all configured SPOE groups in one SPOE scope. + operationId: getSpoeGroups parameters: + - description: Spoe file name + in: query + name: spoe + required: true + type: string + - description: Spoe scope + in: query + name: scope + required: true + type: string - $ref: '#/parameters/transaction_id' - - $ref: '#/parameters/version' - produces: - - text/plain responses: "200": - description: Operation successful + description: Successful operation headers: Configuration-Version: - description: Configuration file version + description: Spoe configuration file version type: integer x-nullable: false schema: @@ -6934,257 +11679,187 @@ paths: _version: type: integer data: - type: string + $ref: '#/definitions/spoe_groups' required: - data type: object default: $ref: '#/responses/DefaultError' - summary: Return HAProxy configuration + summary: Return an array of SPOE groups tags: - - Configuration - - HAProxy configuration management + - Spoe post: - consumes: - - text/plain - description: Push a new haproxy configuration file in plain text - operationId: postHAProxyConfiguration + description: Adds a new SPOE groups to the SPOE scope. + operationId: createSpoeGroup parameters: + - description: Spoe file name + in: query + name: spoe + required: true + type: string + - description: Spoe scope + in: query + name: scope + required: true + type: string - in: body name: data required: true schema: - type: string + $ref: '#/definitions/spoe_group' + - $ref: '#/parameters/transaction_id' - $ref: '#/parameters/version' - - $ref: '#/parameters/force_reload' - produces: - - text/plain responses: "201": - description: New HAProxy configuration pushed - schema: - type: string - "202": - description: Configuration change accepted and reload requested - headers: - Reload-ID: - description: ID of the requested reload - type: string + description: Spoe groups created schema: - type: string + $ref: '#/definitions/spoe_group' "400": $ref: '#/responses/BadRequest' + "409": + $ref: '#/responses/AlreadyExists' default: $ref: '#/responses/DefaultError' - summary: Push new haproxy configuration - tags: - - Configuration - - HAProxy configuration management - /services/haproxy/runtime: - get: - description: Returns a list of endpoints to be used for advanced runtime settings - of HAProxy objects. - operationId: getRuntimeEndpoints - produces: - - application/json - responses: - "200": - description: Success - schema: - $ref: '#/definitions/endpoints' - default: - $ref: '#/responses/DefaultError' - summary: Return list of HAProxy advanced runtime endpoints - tags: - - Discovery - /services/haproxy/runtime/info: - get: - description: Return HAProxy process information - operationId: getHaproxyProcessInfo - produces: - - application/json - responses: - "200": - description: Success - schema: - $ref: '#/definitions/process_infos' - default: - $ref: '#/responses/DefaultError' - summary: Return HAProxy process information + summary: Add a new SPOE groups tags: - - Information - /services/haproxy/runtime/servers: - get: - description: Returns an array of all servers' runtime settings. - operationId: getRuntimeServers + - Spoe + /services/haproxy/spoe/spoe_groups/{name}: + delete: + description: Deletes a SPOE groups from the one SPOE scope. + operationId: deleteSpoeGroup parameters: - - description: Parent backend name + - description: Spoe file name in: query - name: backend + name: spoe required: true type: string + - description: Spoe scope + in: query + name: scope + required: true + type: string + - description: Spoe group name + in: path + name: name + required: true + type: string + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' responses: - "200": - description: Successful operation - schema: - $ref: '#/definitions/runtime_servers' + "204": + description: Spoe group deleted + "404": + $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return an array of runtime servers' setings + summary: Delete a SPOE groups tags: - - Server - - Backend options - /services/haproxy/runtime/servers/{name}: + - Spoe get: - description: Returns one server runtime settings by it's name in the specified backend. - operationId: getRuntimeServer + description: Returns one SPOE groups configuration in one SPOE scope. + operationId: getSpoeGroup parameters: - - description: Server name - in: path - name: name + - description: Spoe file name + in: query + name: spoe required: true type: string - - description: Parent backend name + - description: Spoe scope in: query - name: backend + name: scope + required: true + type: string + - description: Spoe group name + in: path + name: name required: true type: string + - $ref: '#/parameters/transaction_id' responses: "200": description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false schema: - $ref: '#/definitions/runtime_server' + properties: + _version: + type: integer + data: + $ref: '#/definitions/spoe_group' + required: + - data + type: object "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return one server runtime settings + summary: Return a SPOE groups tags: - - Server - - Backend options + - Spoe put: - description: Replaces a server transient settings by it's name in the specified - backend. - operationId: replaceRuntimeServer + description: Replaces a SPOE groups configuration in one SPOE scope. + operationId: replaceSpoeGroup parameters: - - description: Server name - in: path - name: name + - description: Spoe file name + in: query + name: spoe required: true type: string - - description: Parent backend name + - description: Spoe scope in: query - name: backend + name: scope + required: true + type: string + - description: Spoe group name + in: path + name: name required: true type: string - in: body name: data required: true schema: - $ref: '#/definitions/runtime_server' + $ref: '#/definitions/spoe_group' + - $ref: '#/parameters/transaction_id' + - $ref: '#/parameters/version' responses: "200": - description: Server transient settings replaced + description: Spoe groups replaced schema: - $ref: '#/definitions/runtime_server' + $ref: '#/definitions/spoe_group' "400": $ref: '#/responses/BadRequest' "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Replace server transient settings + summary: Replace a SPOE groups tags: - - Server - - Backend options - /services/haproxy/runtime/stick_tables: + - Spoe + /services/haproxy/spoe/version: get: - description: Returns an array of all stick tables. - operationId: getStickTables + description: Returns SPOE configuration version. + operationId: getSpoeConfigurationVersion parameters: - - description: Process number if master-worker mode, if not all processes are returned + - $ref: '#/parameters/transaction_id' + - description: Spoe file name in: query - name: process - type: integer - responses: - "200": - description: Successful operation - schema: - $ref: '#/definitions/stick_tables' - default: - $ref: '#/responses/DefaultError' - summary: Return Stick Tables - tags: - - StickTable - /services/haproxy/runtime/stick_tables/{name}: - get: - description: Returns one stick table from runtime. - operationId: getStickTable - parameters: - - description: Stick table name - in: path - name: name + name: spoe required: true type: string - - description: Process number if master-worker mode, if not only first process is - returned - in: query - name: process - required: true - type: integer responses: "200": - description: Successful operation + description: SPOE configuration version schema: - $ref: '#/definitions/stick_table' + type: integer "404": $ref: '#/responses/NotFound' default: $ref: '#/responses/DefaultError' - summary: Return Stick Table - tags: - - StickTable - /services/haproxy/runtime/stick_table_entries: - get: - description: Returns an array of all entries in a given stick tables. - operationId: getStickTableEntries - parameters: - - description: Stick table name - in: query - name: stick_table - required: true - type: string - - description: Process number if master-worker mode, if not only first process is - returned - in: query - name: process - required: true - type: integer - - description: A list of filters in format data. separated - by comma - in: query - name: filter - type: string - - description: Key which we want the entries for - in: query - name: key - type: string - - description: Max number of entries to be returned for pagination - in: query - name: count - type: integer - - description: Offset which indicates how many items we skip in pagination - in: query - name: offset - type: integer - responses: - "200": - description: Successful operation - schema: - $ref: '#/definitions/stick_table_entries' - default: - $ref: '#/responses/DefaultError' - summary: Return Stick Table Entries + summary: Return a SPOE configuration version tags: - - StickTable + - Spoe diff --git a/haproxy-spec.yaml b/haproxy-spec.yaml index c516db6..fbb334c 100644 --- a/haproxy-spec.yaml +++ b/haproxy-spec.yaml @@ -21,7 +21,7 @@ definitions: description: | Sites array. Sites are considered as one service and all farms connected to that service. Farms are connected to service using use-backend and default_backend directives. Sites let you - configure simple HAProxy configurations, for more advanced options use /haproxy/configuration + configure simple HAProxy configurations, for more advanced options use /haproxy/configuration endpoints. type: array items: @@ -46,6 +46,22 @@ definitions: type: array items: $ref: '#/definitions/backend' + peer_section: + $ref: "models/configuration.yaml#/peer_section" + peer_sections: + title: Peer_Section + description: HAProxy peer_section array + type: array + items: + $ref: '#/definitions/peer_section' + peer_entry: + $ref: "models/configuration.yaml#/peer_entry" + peer_entries: + title: Peer entries + description: HAProxy peer entries array + type: array + items: + $ref: '#/definitions/peer_entry' bind: $ref: "models/configuration.yaml#/bind" binds: @@ -146,6 +162,12 @@ definitions: $ref: "models/stats.yaml#/native_stats" native_stat: $ref: "models/stats.yaml#/native" + native_stat_stats: + $ref: "models/stats.yaml#/native_stat_stats" + native_stats_collection: + $ref: "models/stats.yaml#/native_stats_collection" + stats_options: + $ref: "models/configuration.yaml#/stats_options" error: $ref: "models/errors.yaml#/error" endpoint: @@ -158,6 +180,10 @@ definitions: $ref: '#/definitions/endpoint' process_infos: $ref: "models/runtime.yaml#/process_infos" + process_info: + $ref: "models/runtime.yaml#/process_info" + process_info_item: + $ref: "models/runtime.yaml#/process_info_item" transaction: $ref: "models/general.yaml#/transaction" transactions: @@ -166,6 +192,14 @@ definitions: type: array items: $ref: "#/definitions/transaction" + spoe_transaction: + $ref: "models/spoe-transactions.yaml#/spoe_transaction" + spoe_transactions: + title: SPOE Transactions array + description: SPOE Configuration transactions array + type: array + items: + $ref: "#/definitions/spoe_transaction" info: $ref: "models/general.yaml#/info" reload: @@ -200,20 +234,156 @@ definitions: type: array items: $ref: "#/definitions/stick_table_entry" + cluster_settings: + $ref: "models/cluster.yaml#/settings" + map: + $ref: "models/runtime.yaml#/map" + maps: + title: Map Files Array + description: Array of runtime map files + type: array + items: + $ref: "#/definitions/map" + map_entry: + $ref: "models/runtime.yaml#/map_entry" + map_entries: + title: Maps Entries + description: Entries of one runtime map + type: array + items: + $ref: "#/definitions/map_entry" + ssl_certificate: + $ref: "models/runtime.yaml#/ssl_certificate" + ssl_certificates: + title: SSL Files Array + description: Array of ssl certificate files + type: array + items: + $ref: "#/definitions/ssl_certificate" + ssl_cert_entry: + $ref: "models/runtime.yaml#/ssl_cert_entry" + ssl_cert_entries: + title: SSL Certificate Entries + description: Array of entries of runtime SSL Certificate Entry + type: array + items: + $ref: "#/definitions/ssl_cert_entry" + ssl_crt_list: + $ref: "models/runtime.yaml#/ssl_crt_list" + ssl_crt_lists: + title: SSL crt-list + description: Array of entries of runtime crt-list + type: array + items: + $ref: "#/definitions/ssl_crt_list" + ssl_crt_list_entry: + $ref: "models/runtime.yaml#/ssl_crt_list_entry" + ssl_crt_list_entries: + title: SSL Certificate Entries + description: Array of entries of runtime SSL Certificate Entry + type: array + items: + $ref: "#/definitions/ssl_crt_list_entry" + acl_file: + $ref: "models/runtime.yaml#/acl_file" + acl_files: + title: ACL Files Array + description: Array of runtime acl files + type: array + items: + $ref: "#/definitions/acl_file" + acl_file_entry: + $ref: "models/runtime.yaml#/acl_file_entry" + acl_files_entries: + title: ACL Files Entries + description: Array of entries of one runtime acl file + type: array + items: + $ref: "#/definitions/acl_file_entry" balance: $ref: "models/configuration.yaml#/balance" forwardfor: $ref: "models/configuration.yaml#/forwardfor" default_server: $ref: "models/configuration.yaml#/default_server" - httpchk: - $ref: "models/configuration.yaml#/httpchk" + httpchk_params: + $ref: "models/configuration.yaml#/httpchk_params" + http-check: + $ref: "models/configuration.yaml#/http-check" redispatch: $ref: "models/configuration.yaml#/redispatch" errorfile: $ref: "models/configuration.yaml#/errorfile" cookie: $ref: "models/configuration.yaml#/cookie" + resolver: + $ref: "models/configuration.yaml#/resolver" + resolvers: + title: Resolvers + description: HAProxy resolvers array + type: array + items: + $ref: '#/definitions/resolver' + nameserver: + $ref: "models/configuration.yaml#/nameserver" + nameservers: + title: Nameservers + description: Nameservers array + type: array + items: + $ref: '#/definitions/nameserver' + consul: + $ref: "models/service-discovery.yaml#/consul" + consuls: + title: Consuls + description: Consuls array + type: array + items: + $ref: '#/definitions/consul' + monitor_uri: + $ref: "models/monitor.yaml#/monitor_uri" + monitor_fail: + $ref: "models/monitor.yaml#/monitor_fail" + smtpchk_params: + $ref: "models/configuration.yaml#/smtpchk_params" + mysql_check_params: + $ref: "models/configuration.yaml#/mysql_check_params" + pgsql_check_params: + $ref: "models/configuration.yaml#/pgsql_check_params" + spoe_files: + $ref: "models/spoe.yaml#/spoe_files" + spoe_scope: + $ref: "models/spoe.yaml#/spoe_scope" + spoe_scopes: + title: SPOE Scopes + description: All SPOE Scopes + type: array + items: + $ref: "#/definitions/spoe_scope" + spoe_agent: + $ref: "models/spoe.yaml#/spoe_agent" + spoe_agents: + title: SPOE Agents + description: SPOE Agents of one scope in SPOE file + type: array + items: + $ref: "#/definitions/spoe_agent" + spoe_message: + $ref: "models/spoe.yaml#/spoe_message" + spoe_messages: + title: SPOE Messages + description: SPOE Messages of one scope in SPOE file + type: array + items: + $ref: "#/definitions/spoe_message" + spoe_group: + $ref: "models/spoe.yaml#/spoe_group" + spoe_groups: + title: SPOE Groups + description: SPOE Groups of one scope in SPOE file + type: array + items: + $ref: "#/definitions/spoe_group" responses: BadRequest: description: Bad request @@ -221,7 +391,8 @@ responses: Configuration-Version: description: Configuration file version type: integer - x-nullable: false + x-nullable: true + default: 0 schema: $ref: '#/definitions/error' NotFound: @@ -230,7 +401,8 @@ responses: Configuration-Version: description: Configuration file version type: integer - x-nullable: false + x-nullable: true + default: 0 schema: $ref: '#/definitions/error' AlreadyExists: @@ -239,7 +411,8 @@ responses: Configuration-Version: description: Configuration file version type: integer - x-nullable: false + x-nullable: true + default: 0 schema: $ref: '#/definitions/error' DefaultError: @@ -248,10 +421,11 @@ responses: Configuration-Version: description: Configuration file version type: integer - x-nullable: false + x-nullable: true + default: 0 schema: $ref: '#/definitions/error' -parameters: +parameters: transaction_id: name: transaction_id in: query @@ -290,21 +464,21 @@ tags: - name: Specification - name: Transactions description: | - Managing transactions. Configuration changes can be grouped in the transaction. You start the - transaction with trasactions POST, and call the configuration changes you need with parameter + Managing transactions. Configuration changes can be grouped in the transaction. You start the + transaction with trasactions POST, and call the configuration changes you need with parameter transaction_id. When you want to commit the transaction, you call the transactions PUT and all changes - in that transaction is commited. If you call a configuration change without the transaction_id, + in that transaction is commited. If you call a configuration change without the transaction_id, transaction mechanism is implicitly called with one operation in transaction. - name: Reloads description: | Checking reload success. To avoid constant reloading we reload in intervals that are configurable when - with reload-delay option. When a change to configuration is made and force_reload url query string + with reload-delay option. When a change to configuration is made and force_reload url query string parameter is false we issue a request for reload, and return the reload ID in response header. You can then use reloads endpoints to check the status of that reload ID. If force_reload is true, we override all of this and reload immediately. - name: Sites description: | - Managing sites (simple configuration mode). Sites are considered as one frontend with multiple backends + Managing sites (simple configuration mode). Sites are considered as one frontend with multiple backends connected to it via default_backend or use-backend directives. - name: Stats description: Stats container @@ -320,14 +494,8 @@ tags: description: Managing frontend bind configurations (advanced mode) - name: Server description: Managing backend server configurations (advanced mode) - - name: Frontend options - description: Various frontend options (advanced mode) - - name: Backend options - description: Various backend options (advanced mode) - name: Configuration description: Raw HAProxy configuration management (advanced mode) - - name: HAProxy configuration management - description: Managing advanced haproxy configuration (advanced mode) - name: TCPRequestRule - name: HTTPRequestRule - name: HTTPResponseRule @@ -336,8 +504,19 @@ tags: - name: TCPResponseRule - name: Filter - name: StickRule + - name: StickTable - name: LogTarget - name: ACL + - name: Resolver + - name: Nameserver + - name: Peer + - name: PeerEntry + - name: Cluster + - name: Maps + - name: SpecificationOpenapiv3 + - name: ServiceDiscovery + - name: Spoe + - name: SpoeTransactions security: - basic_auth: [] paths: @@ -345,8 +524,18 @@ paths: $ref: "paths/general.yaml#/root" /specification: $ref: "paths/general.yaml#/specification" + /specification_openapiv3: + $ref: "paths/general.yaml#/specification_openapiv3" /info: $ref: "paths/general.yaml#/info" + /cluster: + $ref: "paths/cluster.yaml#/cluster" + /cluster/certificate: + $ref: "paths/cluster.yaml#/certificate" + /service_discovery/consul: + $ref: "paths/service-discovery.yaml#/consul" + /service_discovery/consul/{id}: + $ref: "paths/service-discovery.yaml#/consul_one" /services: $ref: "paths/general.yaml#/services" /services/haproxy: @@ -363,12 +552,16 @@ paths: $ref: "paths/general.yaml#/transactions" /services/haproxy/transactions/{id}: $ref: "paths/general.yaml#/transactions_one" + /services/haproxy/spoe_transactions: + $ref: "paths/spoe-transactions.yaml#/transactions" + /services/haproxy/spoe_transactions/{id}: + $ref: "paths/spoe-transactions.yaml#/transactions_one" /services/haproxy/reloads: $ref: "paths/general.yaml#/reloads" /services/haproxy/reloads/{id}: $ref: "paths/general.yaml#/reloads_one" /services/haproxy/configuration: - $ref: "paths/general.yaml#/configuration" + $ref: "paths/general.yaml#/configuration" /services/haproxy/configuration/global: $ref: "paths/configuration.yaml#/global" /services/haproxy/configuration/defaults: @@ -377,6 +570,14 @@ paths: $ref: "paths/configuration.yaml#/frontends" /services/haproxy/configuration/frontends/{name}: $ref: "paths/configuration.yaml#/frontends_one" + /services/haproxy/configuration/peer_section: + $ref: "paths/configuration.yaml#/peer_section" + /services/haproxy/configuration/peer_section/{name}: + $ref: "paths/configuration.yaml#/peer_section_one" + /services/haproxy/configuration/peer_entries: + $ref: "paths/configuration.yaml#/peer_entries" + /services/haproxy/configuration/peer_entries/{name}: + $ref: "paths/configuration.yaml#/peer_entries_one" /services/haproxy/configuration/backends: $ref: "paths/configuration.yaml#/backends" /services/haproxy/configuration/backends/{name}: @@ -391,44 +592,52 @@ paths: $ref: "paths/configuration.yaml#/servers_one" /services/haproxy/configuration/http_request_rules: $ref: "paths/configuration.yaml#/http_request_rules" - /services/haproxy/configuration/http_request_rules/{id}: + /services/haproxy/configuration/http_request_rules/{index}: $ref: "paths/configuration.yaml#/http_request_rules_one" /services/haproxy/configuration/http_response_rules: $ref: "paths/configuration.yaml#/http_response_rules" - /services/haproxy/configuration/http_response_rules/{id}: + /services/haproxy/configuration/http_response_rules/{index}: $ref: "paths/configuration.yaml#/http_response_rules_one" /services/haproxy/configuration/tcp_request_rules: $ref: "paths/configuration.yaml#/tcp_request_rules" - /services/haproxy/configuration/tcp_request_rules/{id}: + /services/haproxy/configuration/tcp_request_rules/{index}: $ref: "paths/configuration.yaml#/tcp_request_rules_one" /services/haproxy/configuration/tcp_response_rules: $ref: "paths/configuration.yaml#/tcp_response_rules" - /services/haproxy/configuration/tcp_response_rules/{id}: + /services/haproxy/configuration/tcp_response_rules/{index}: $ref: "paths/configuration.yaml#/tcp_response_rules_one" /services/haproxy/configuration/backend_switching_rules: $ref: "paths/configuration.yaml#/backend_switching_rules" - /services/haproxy/configuration/backend_switching_rules/{id}: + /services/haproxy/configuration/backend_switching_rules/{index}: $ref: "paths/configuration.yaml#/backend_switching_rules_one" /services/haproxy/configuration/server_switching_rules: $ref: "paths/configuration.yaml#/server_switching_rules" - /services/haproxy/configuration/server_switching_rules/{id}: + /services/haproxy/configuration/server_switching_rules/{index}: $ref: "paths/configuration.yaml#/server_switching_rules_one" /services/haproxy/configuration/filters: $ref: "paths/configuration.yaml#/filters" - /services/haproxy/configuration/filters/{id}: + /services/haproxy/configuration/filters/{index}: $ref: "paths/configuration.yaml#/filters_one" /services/haproxy/configuration/stick_rules: $ref: "paths/configuration.yaml#/stick_rules" - /services/haproxy/configuration/stick_rules/{id}: + /services/haproxy/configuration/stick_rules/{index}: $ref: "paths/configuration.yaml#/stick_rules_one" /services/haproxy/configuration/log_targets: $ref: "paths/configuration.yaml#/log_targets" - /services/haproxy/configuration/log_targets/{id}: + /services/haproxy/configuration/log_targets/{index}: $ref: "paths/configuration.yaml#/log_targets_one" /services/haproxy/configuration/acls: $ref: "paths/configuration.yaml#/acls" - /services/haproxy/configuration/acls/{id}: + /services/haproxy/configuration/acls/{index}: $ref: "paths/configuration.yaml#/acls_one" + /services/haproxy/configuration/resolvers: + $ref: "paths/configuration.yaml#/resolvers" + /services/haproxy/configuration/resolvers/{name}: + $ref: "paths/configuration.yaml#/resolvers_one" + /services/haproxy/configuration/nameservers: + $ref: "paths/configuration.yaml#/nameservers" + /services/haproxy/configuration/nameservers/{name}: + $ref: "paths/configuration.yaml#/nameservers_one" /services/haproxy/configuration/raw: $ref: "paths/configuration.yaml#/configuration" /services/haproxy/runtime: @@ -445,3 +654,43 @@ paths: $ref: "paths/runtime.yaml#/stick_tables_one" /services/haproxy/runtime/stick_table_entries: $ref: "paths/runtime.yaml#/stick_table_entries" + /services/haproxy/runtime/maps: + $ref: "paths/runtime.yaml#/maps" + /services/haproxy/runtime/maps/{name}: + $ref: "paths/runtime.yaml#/maps_one" + /services/haproxy/runtime/maps_entries: + $ref: "paths/runtime.yaml#/maps_entries" + /services/haproxy/runtime/maps_entries/{id}: + $ref: "paths/runtime.yaml#/maps_entries_one" + /services/haproxy/configuration/version: + $ref: "paths/configuration.yaml#/version" + /services/haproxy/storage/maps: + $ref: "paths/storage.yaml#/maps" + /services/haproxy/storage/maps/{name}: + $ref: "paths/storage.yaml#/maps_one" + /services/haproxy/storage/ssl_certificates: + $ref: "paths/storage.yaml#/ssl_certificates" + /services/haproxy/storage/ssl_certificates/{name}: + $ref: "paths/storage.yaml#/ssl_certificates_one" + /services/haproxy/spoe/spoe_files: + $ref: "paths/spoe.yaml#/spoe_files" + /services/haproxy/spoe/spoe_files/{name}: + $ref: "paths/spoe.yaml#/spoes_one" + /services/haproxy/spoe/spoe_scopes: + $ref: "paths/spoe.yaml#/spoe_scopes" + /services/haproxy/spoe/spoe_scopes/{name}: + $ref: "paths/spoe.yaml#/spoe_scopes_one" + /services/haproxy/spoe/spoe_agents: + $ref: "paths/spoe.yaml#/spoe_agents" + /services/haproxy/spoe/spoe_agents/{name}: + $ref: "paths/spoe.yaml#/spoe_agents_one" + /services/haproxy/spoe/spoe_messages: + $ref: "paths/spoe.yaml#/spoe_messages" + /services/haproxy/spoe/spoe_messages/{name}: + $ref: "paths/spoe.yaml#/spoe_messages_one" + /services/haproxy/spoe/spoe_groups: + $ref: "paths/spoe.yaml#/spoe_groups" + /services/haproxy/spoe/spoe_groups/{name}: + $ref: "paths/spoe.yaml#/spoe_groups_one" + /services/haproxy/spoe/version: + $ref: "paths/spoe.yaml#/version" diff --git a/models/cluster.yaml b/models/cluster.yaml new file mode 100644 index 0000000..a9d5471 --- /dev/null +++ b/models/cluster.yaml @@ -0,0 +1,38 @@ +--- +settings: + title: Cluster Settings + description: Settings related to a cluster. + type: object + properties: + bootstrap_key: + type: string + mode: + type: string + enum: [single, cluster] + status: + type: string + enum: [active, unreachable, waiting_approval] + readOnly: true + cluster: + properties: + name: + type: string + readOnly: true + description: + type: string + readOnly: true + address: + pattern: ^[^\s]+$ + type: string + readOnly: true + port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + readOnly: true + api_base_path: + type: string + readOnly: true + title: Cluster controller information + type: object diff --git a/models/configuration.yaml b/models/configuration.yaml index 551a332..c2f0e13 100644 --- a/models/configuration.yaml +++ b/models/configuration.yaml @@ -1,8 +1,21 @@ +--- global: title: Global description: HAProxy global configuration type: object properties: + chroot: + type: string + pattern: '^[^\s]+$' + x-display-name: Chroot + group: + type: string + pattern: '^[^\s]+$' + x-display-name: Group + user: + type: string + pattern: '^[^\s]+$' + x-display-name: User daemon: type: string enum: [enabled, disabled] @@ -33,6 +46,22 @@ global: ssl_default_bind_ciphers: type: string x-display-name: SSL Default Bind Ciphers + ssl_default_bind_ciphersuites: + type: string + x-display-name: SSL Default Bind Ciphersuites + ssl_default_server_options: + type: string + x-display-name: SSL Default Server Options + ssl_default_server_ciphers: + type: string + x-display-name: SSL Default Server Ciphers + ssl_default_server_ciphersuites: + type: string + x-display-name: SSL Default Server Ciphersuites + ssl_mode_async: + type: string + enum: [enabled, disabled] + x-display-name: Asynchronous TLS I/O operations cpu_maps: x-go-name: CPUMaps type: array @@ -54,7 +83,7 @@ global: type: array x-display-name: Runtime APIs x-go-name: RuntimeAPIs - items: + items: type: object x-go-name: RuntimeAPI required: @@ -78,13 +107,36 @@ global: stats_timeout: type: integer x-nullable: true + lua_loads: + type: array + items: + type: object + x-go-name: LuaLoad + required: + - file + properties: + file: + type: string + pattern: '^[^\s]+$' + log_send_hostname: + type: object + x-display-name: Log Send Hostname + required: + - enabled + properties: + enabled: + type: string + enum: [enabled, disabled] + param: + type: string + pattern: '^[^\s]+$' additionalProperties: false defaults: title: Defaults description: HAProxy defaults configuration type: object properties: - mode: + mode: type: string enum: [tcp, http] balance: @@ -96,15 +148,29 @@ defaults: adv_check: type: string x-display-name: Advanced Check - enum: [ssl-hello-chk, smtpchk, ldap-check, mysql-check, pgsql-check, tcp-check, redis-check] - httpchk: - $ref: "#/definitions/httpchk" + enum: [ssl-hello-chk, smtpchk, ldap-check, mysql-check, pgsql-check, tcp-check, redis-check, httpchk] + smtpchk_params: + $ref: "#/definitions/smtpchk_params" + mysql_check_params: + $ref: "#/definitions/mysql_check_params" + pgsql_check_params: + $ref: "#/definitions/pgsql_check_params" + httpchk_params: + $ref: "#/definitions/httpchk_params" + http-check: + $ref: "#/definitions/http-check" + bind_process: + type: string + pattern: '^[^\s]+$' http_connection_mode: type: string enum: [httpclose, http-server-close, http-keep-alive] http_pretend_keepalive: type: string enum: [enabled, disabled] + abortonclose: + type: string + enum: [enabled, disabled] http-use-htx: type: string enum: [enabled, disabled] @@ -113,6 +179,10 @@ defaults: type: string enum: [enabled, disabled] x-display-name: Don't Log Null + http-buffer-request: + type: string + enum: [enabled, disabled] + x-display-name: HTTP bufferrequest httplog: type: boolean x-display-name: HTTP Log @@ -133,7 +203,7 @@ defaults: log_separate_errors: type: string enum: [enabled, disabled] - clitcpka: + clitcpka: type: string enum: [enabled, disabled] x-display-name: Client TCP Keep Alive @@ -142,6 +212,8 @@ defaults: check_timeout: type: integer x-nullable: true + monitor_uri: + $ref: '#/definitions/monitor_uri' connect_timeout: type: integer x-nullable: true @@ -160,12 +232,18 @@ defaults: http_keep_alive_timeout: type: integer x-nullable: true + http_reuse: + type: string + enum: [aggressive, always, never, safe] server_timeout: type: integer x-nullable: true queue_timeout: type: integer x-nullable: true + tunnel_timeout: + type: integer + x-nullable: true external_check: type: string enum: [enabled, disabled] @@ -178,8 +256,6 @@ defaults: type: string pattern: '^[^\s]+$' x-display-name: External Check Command - forwardfor: - $ref: "#/definitions/forwardfor" redispatch: $ref: "#/definitions/redispatch" retries: @@ -188,17 +264,104 @@ defaults: default_backend: type: string pattern: '^[A-Za-z0-9-_.:]+$' - x-dynamic-enum: + x-dynamic-enum: operation: getBackends property: name default_server: - $ref: "#/definitions/default_server" + $ref: "#/definitions/default_server" error_files: type: array x-go-name: ErrorFiles items: $ref: "#/definitions/errorfile" + unique_id_format: + type: string + x-display-name: Unique ID format + unique_id_header: + type: string + x-display-name: Unique ID header + x-dependency: + unique_id_format: + required: true + logasap: + type: string + enum: [enabled, disabled] + x-display-name: Log ASAP + allbackups: + type: string + enum: [enabled, disabled] + x-display-name: All Backups + stats_options: + $ref: "#/definitions/stats_options" additionalProperties: false +resolver: + title: Resolver + description: Runtime DNS configuration + type: object + required: + - name + properties: + name: + type: string + pattern: '^[A-Za-z0-9-_.:]+$' + x-nullable: false + accepted_payload_size: + type: integer + minimum: 512 + maximum: 8192 + hold_nx: + type: integer + x-nullable: true + hold_obsolete: + type: integer + x-nullable: true + hold_other: + type: integer + x-nullable: true + hold_refused: + type: integer + x-nullable: true + hold_timeout: + type: integer + x-nullable: true + hold_valid: + type: integer + x-nullable: true + parse-resolv-conf: + type: boolean + resolve_retries: + type: integer + minimum: 1 + timeout_resolve: + type: integer + x-nullable: false + timeout_retry: + type: integer + x-nullable: false +nameserver: + title: Nameserver + description: Nameserver used in Runtime DNS configuration + type: object + required: + - name + - address + properties: + name: + type: string + pattern: '^[A-Za-z0-9-_.:]+$' + x-nullable: false + address: + type: string + pattern: '^[^\s]+$' + port: + type: integer + x-nullable: true + minimum: 1 + maximum: 65535 + example: + name: ns1 + address: 10.0.0.1 + port: 53 frontend: title: Frontend description: HAProxy frontend configuration @@ -216,20 +379,27 @@ frontend: httplog: type: boolean x-display-name: HTTP Log - x-dependency: - mode: + x-dependency: + mode: value: http + logasap: + type: string + enum: [enabled, disabled] + x-display-name: Log ASAP + bind_process: + type: string + pattern: '^[^\s]+$' clflog: type: boolean x-display-name: CLF Log - x-dependency: - mode: + x-dependency: + mode: value: http tcplog: type: boolean x-display-name: TCP Log - x-dependency: - mode: + x-dependency: + mode: value: tcp log_format: type: string @@ -246,11 +416,15 @@ frontend: type: string enum: [enabled, disabled] x-display-name: Don't Log Null + http-buffer-request: + type: string + enum: [enabled, disabled] + x-display-name: HTTP bufferrequest http_connection_mode: type: string enum: [httpclose, http-server-close, http-keep-alive] - x-dependency: - mode: + x-dependency: + mode: value: http client_timeout: type: integer @@ -258,14 +432,14 @@ frontend: http_request_timeout: type: integer x-nullable: true - x-dependency: - mode: + x-dependency: + mode: value: http http_keep_alive_timeout: type: integer x-nullable: true - x-dependency: - mode: + x-dependency: + mode: value: http maxconn: type: integer @@ -279,27 +453,42 @@ frontend: default_backend: type: string pattern: '^[A-Za-z0-9-_.:]+$' - x-dynamic-enum: + x-dynamic-enum: operation: getBackends property: name contstats: type: string enum: [enabled] x-display-name: Continous Statistics - clitcpka: + clitcpka: type: string enum: [enabled, disabled] x-display-name: Client TCP Keep Alive - x-dependency: - mode: + x-dependency: + mode: value: tcp http-use-htx: type: string enum: [enabled, disabled] x-display-name: HTTP Use HTX - x-dependency: - mode: + x-dependency: + mode: value: http + unique_id_format: + type: string + x-display-name: Unique ID format + unique_id_header: + type: string + x-display-name: Unique ID header + x-dependency: + unique_id_format: + required: true + stats_options: + $ref: "#/definitions/stats_options" + monitor_uri: + $ref: '#/definitions/monitor_uri' + monitor_fail: + $ref: '#/definitions/monitor_fail' additionalProperties: false example: name: test_frontend @@ -332,24 +521,40 @@ backend: modifier: type: string enum: [avalanche] + http-check: + $ref: "#/definitions/http-check" + bind_process: + type: string + pattern: '^[^\s]+$' mode: type: string enum: [http, tcp] + allbackups: + type: string + enum: [enabled, disabled] + x-display-name: All Backups + http-buffer-request: + type: string + enum: [enabled, disabled] + x-display-name: HTTP bufferrequest log_tag: type: string pattern: '^[^\s]+$' http_connection_mode: type: string enum: [httpclose, http-server-close, http-keep-alive] - x-dependency: - mode: + x-dependency: + mode: value: http http_pretend_keepalive: type: string enum: [enabled, disabled] - x-dependency: - mode: + x-dependency: + mode: value: http + abortonclose: + type: string + enum: [enabled, disabled] forwardfor: $ref: "#/definitions/forwardfor" x-dependency: @@ -357,18 +562,24 @@ backend: value: http cookie: $ref: '#/definitions/cookie' - x-dependency: - mode: - value: http + x-dependency: + mode: + value: http default_server: - $ref: "#/definitions/default_server" + $ref: "#/definitions/default_server" check_timeout: type: integer x-nullable: true adv_check: type: string x-display-name: Advanced Check - enum: [ssl-hello-chk, smtpchk, ldap-check, mysql-check, pgsql-check, tcp-check, redis-check] + enum: [ssl-hello-chk, smtpchk, ldap-check, mysql-check, pgsql-check, tcp-check, redis-check, httpchk] + smtpchk_params: + $ref: "#/definitions/smtpchk_params" + mysql_check_params: + $ref: "#/definitions/mysql_check_params" + pgsql_check_params: + $ref: "#/definitions/pgsql_check_params" external_check: type: string enum: [enabled, disabled] @@ -390,8 +601,8 @@ backend: http_request_timeout: type: integer x-nullable: true - x-dependency: - mode: + x-dependency: + mode: value: http http_keep_alive_timeout: type: integer @@ -407,8 +618,17 @@ backend: server_timeout: type: integer x-nullable: true - httpchk: - $ref: "#/definitions/httpchk" + tunnel_timeout: + type: integer + x-nullable: true + httpchk_params: + $ref: "#/definitions/httpchk_params" + x-dependency: + mode: + value: http + http_reuse: + type: string + enum: [aggressive, always, never, safe] x-dependency: mode: value: http @@ -440,158 +660,494 @@ backend: http-use-htx: type: string enum: [enabled, disabled] - x-dependency: - mode: + x-dependency: + mode: value: http + pattern: '^[^\s]+$' + stats_options: + $ref: "#/definitions/stats_options" additionalProperties: false example: name: test_backend mode: http - balance: + balance: algorithm: roundrobin - forwardfor: + forwardfor: enabled: enabled - httpchk: + adv_check: httpchk + httpchk_params: uri: "/check" - method: OPTIONS + method: GET version: HTTP/1.1 -bind: - title: Bind - description: HAProxy frontend bind configuration +peer_section: + title: Peer Section + description: HAProxy peer_section configuration type: object required: - name properties: name: type: string - pattern: '^[^\s]+$' + pattern: '^[A-Za-z0-9-_.:]+$' x-nullable: false - accept_proxy: - type: boolean - allow_0rtt: - type: boolean - address: - type: string - pattern: '^[^\s]+$' - port: - type: integer - x-nullable: true - minimum: 1 - maximum: 65535 - process: - type: string - pattern: '^[^\s]+$' - v4v6: - type: boolean - ssl: - type: boolean - ssl_certificate: - type: string - pattern: '^[^\s]+$' - x-dependency: - ssl: - value: true - ssl_cafile: - type: string - x-display-name: SSL CA File - pattern: '^[^\s]+$' - x-dependency: - ssl: - value: true - alpn: - type: string - x-display-name: ALPN Protocols - pattern: '^[^\s]+$' - verify: - type: string - enum: [none, optional, required] - x-dependency: - ssl: - value: enabled - transparent: - type: boolean - tcp_user_timeout: - type: integer - x-nullable: true additionalProperties: false - example: - name: http - address: 127.0.0.1 - port: 80 -server: - title: Server - description: HAProxy backend server configuration +peer_entry: + title: Peer Entry + description: Peer Entry from peers table type: object required: - name + - address + - port properties: name: type: string - pattern: '^[^\s]+$' + pattern: '^[A-Za-z0-9-_.:]+$' x-nullable: false address: type: string pattern: '^[^\s]+$' - x-nullable: false - allow_0rtt: - type: boolean port: type: integer x-nullable: true minimum: 1 maximum: 65535 - health_check_port: - type: integer - x-nullable: true - minimum: 1 - maximum: 65535 - maxconn: - type: integer - x-display-name: Max Connections - x-nullable: true - weight: - type: integer - x-nullable: true - inter: - type: integer - x-nullable: true - fastinter: - type: integer - x-nullable: true - downinter: +bind: + title: Bind + description: HAProxy frontend bind configuration + type: object + required: + - name + properties: + accept_netscaler_cip: type: integer - x-nullable: true - cookie: + accept_proxy: + type: boolean + allow_0rtt: + type: boolean + alpn: type: string + x-display-name: ALPN Protocols pattern: '^[^\s]+$' - backup: + backlog: type: string - enum: [enabled, disabled] - check: + curves: type: string - enum: [enabled, disabled] - agent-check: + x-dependency: + ssl: + value: true + ecdhe: type: string - enum: [enabled, disabled] x-dependency: - agent-port: - required: true - agent-addr: + ssl: + value: true + # ca_file: + # type: string + # x-dependency: + # ssl: + # value: true + ca_ignore_err: type: string - pattern: '^[^\s]+$' - agent-port: + x-dependency: + ssl: + value: true + ca_sign_file: + type: string + x-dependency: + ssl: + value: true + ca_sign_pass: + type: string + x-display-name: Passphrase + x-dependency: + ssl: + value: true + ca_verify_file: + type: string + x-dependency: + ca_file: + value: true + ciphers: + type: string + x-dependency: + ssl: + value: true + ciphersuites: + type: string + x-dependency: + ssl: + value: true + crl_file: + type: string + x-dependency: + ssl: + value: true + # crt: + # type: string + # x-dependency: + # ssl: + # value: true + crt_ignore_err: + type: string + x-dependency: + ssl: + value: true + crt_list: + type: string + x-dependency: + ssl: + value: true + defer_accept: + type: boolean + expose_fd_listeners: + type: boolean + force_sslv3: + type: boolean + force_tlsv10: + type: boolean + force_tlsv11: + type: boolean + force_tlsv12: + type: boolean + force_tlsv13: + type: boolean + generate_certificates: + type: boolean + x-dependency: + ssl: + value: true + gid: + type: integer + x-display-name: Group ID + group: + type: string + x-display-name: Group name + id: + type: string + x-display-name: Socket ID + interface: + type: string + level: + type: string + enum: [user, operator, admin] + severity_output: + type: string + x-display-name: Format + enum: [none, number, string] + maxconn: + type: integer + mode: + type: string + mss: + type: string + name: + type: string + pattern: '^[^\s]+$' + x-nullable: false + namespace: + type: string + nice: + type: integer + no_ca_names: + type: boolean + x-dependency: + ssl: + value: true + no_sslv3: + type: boolean + x-dependency: + ssl: + value: true + no_tls_tickets: + type: boolean + x-dependency: + ssl: + value: true + no_tlsv10: + type: boolean + x-dependency: + ssl: + value: true + no_tlsv11: + type: boolean + x-dependency: + ssl: + value: true + no_tlsv12: + type: boolean + x-dependency: + ssl: + value: true + no_tlsv13: + type: boolean + x-dependency: + ssl: + value: true + npn: + type: string + prefer_client_ciphers: + type: boolean + process: + type: string + pattern: '^[^\s]+$' + address: + type: string + pattern: '^[^\s]+$' + port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + port-range-end: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + proto: + type: string + x-display-name: Protocol name + ssl: + type: boolean + ssl_certificate: + type: string + pattern: '^[^\s]+$' + x-dependency: + ssl: + value: true + ssl_cafile: + type: string + x-display-name: SSL CA File + pattern: '^[^\s]+$' + x-dependency: + ssl: + value: true + ssl_max_ver: + type: string + enum: [SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3] + ssl_min_ver: + type: string + enum: [SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3] + strict_sni: + type: boolean + x-dependency: + ssl: + value: true + tcp_user_timeout: + type: integer + x-nullable: true + tfo: + type: boolean + tls_ticket_keys: + type: string + transparent: + type: boolean + v4v6: + type: boolean + v6only: + type: boolean + uid: + type: string + user: + type: string + verify: + type: string + enum: [none, optional, required] + x-dependency: + ssl: + value: enabled + additionalProperties: false + example: + name: http + address: 127.0.0.1 + port: 80 +server: + title: Server + description: HAProxy backend server configuration + type: object + required: + - name + properties: + name: + type: string + pattern: '^[^\s]+$' + x-nullable: false + address: + type: string + pattern: '^[^\s]+$' + x-nullable: false + health_check_port: type: integer x-nullable: true minimum: 1 maximum: 65535 + ssl_certificate: + type: string + pattern: '^[^\s]+$' + x-dependency: + ssl: + value: enabled + maintenance: + type: string + enum: [enabled, disabled] + agent-check: + type: string + enum: [enabled, disabled] + x-dependency: + agent-port: + required: true + agent-send: + type: string agent-inter: type: integer x-nullable: true - agent-send: + agent-addr: type: string - maintenance: + pattern: '^[^\s]+$' + agent-port: + type: integer + x-nullable: true + minimum: 1 + maximum: 65535 + allow_0rtt: + type: boolean + alpn: + type: string + x-display-name: ALPN Protocols + pattern: '^[^\s]+$' + backup: + type: string + enum: [enabled, disabled] + ssl_cafile: # ca-file? + type: string + x-display-name: SSL CA File + pattern: '^[^\s]+$' + x-dependency: + ssl: + value: enabled + check: + type: string + enum: [enabled, disabled] + check_alpn: + type: string + x-display-name: Protocols + pattern: '^[^\s]+$' + check_proto: + type: string + x-display-name: Name + pattern: '^[^\s]+$' + check-sni: + type: string + pattern: '^[^\s]+$' + check-ssl: + type: string + enum: [enabled, disabled] + check_via_socks4: type: string enum: [enabled, disabled] + ciphers: + type: string + x-dependency: + ssl: + value: enabled + ciphersuites: + type: string + x-dependency: + ssl: + value: enabled + cookie: + type: string + pattern: '^[^\s]+$' + crl_file: + type: string + x-dependency: + ssl: + value: enabled + error_limit: + type: integer + x-display-name: Error count + fall: + type: integer + x-display-name: Nr. of consecutive failed checks + x-nullable: true + force_sslv3: + type: string + enum: [enabled, disabled] + force_tlsv10: + type: string + enum: [enabled, disabled] + force_tlsv11: + type: string + enum: [enabled, disabled] + force_tlsv12: + type: string + enum: [enabled, disabled] + force_tlsv13: + type: string + enum: [enabled, disabled] + id: + type: integer + x-nullable: true + init-addr: + pattern: ^[^\s]+$ + type: string + x-nullable: true + inter: + type: integer + x-nullable: true + fastinter: + type: integer + x-nullable: true + downinter: + type: integer + x-nullable: true + log_proto: + type: string + enum: [legacy, octet-count] + maxconn: + type: integer + x-display-name: Max Concurrent Connections + x-nullable: true + maxqueue: + type: integer + x-display-name: Max Number of Connections + x-nullable: true + max_reuse: + type: integer + x-nullable: true + minconn: + type: integer + x-nullable: true + namespace: + type: string + no_sslv3: + type: string + enum: [enabled, disabled] + no_tlsv10: + type: string + enum: [enabled, disabled] + no_tlsv11: + type: string + enum: [enabled, disabled] + no_tlsv12: + type: string + enum: [enabled, disabled] + no_tlsv13: + type: string + enum: [enabled, disabled] + no_verifyhost: + type: string + enum: [enabled, disabled] + npn: + type: string + x-dependency: + ssl: + value: enabled + observe: + type: string + enum: [layer4, layer7] + x-dependency: + ssl: + value: enabled on-error: type: string enum: [fastinter, fail-check, sudden-death, mark-down] @@ -601,36 +1157,108 @@ server: on-marked-up: type: string enum: [shutdown-backup-sessions] + pool_low_conn: + type: integer + x-nullable: true + pool_max_conn: + type: integer + x-nullable: true + pool_purge_delay: + type: integer + x-nullable: true + port: + type: integer + x-nullable: true + minimum: 1 + maximum: 65535 + proto: + type: string + pattern: '^[^\s]+$' + redir: + type: string + x-display-name: Prefix + rise: + type: integer + x-nullable: true + resolve_opts: + type: string + pattern: '^[^,\s][^\,]*[^,\s]*$' + resolve-prefer: + type: string + enum: [ipv4, ipv6] + x-dependency: + resolvers: + required: true + resolve-net: + type: string + pattern: '^[^,\s][^\,]*[^,\s]*$' + x-dependency: + resolvers: + required: true + resolvers: + type: string + pattern: '^[^\s]+$' + x-dynamic-enum: + operation: getResolvers + property: name send-proxy: type: string enum: [enabled, disabled] send-proxy-v2: type: string enum: [enabled, disabled] + proxy-v2-options: + type: array + items: + type: string + enum: [ssl, cert-cn, ssl-cipher, cert-sig, cert-key, authority, crc32c, unique-id] + send_proxy_v2_ssl: + type: string + enum: [enabled, disabled] + send_proxy_v2_ssl_cn: + type: string + enum: [enabled, disabled] + slowstart: + type: integer + x-nullable: true + sni: + type: string + pattern: '^[^\s]+$' + source: + type: string ssl: type: string enum: [enabled, disabled] - check-ssl: + ssl_max_ver: + type: string + enum: [SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3] + ssl_min_ver: + type: string + enum: [SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3] + ssl_reuse: + type: string + enum: [enabled, disabled] + stick: type: string enum: [enabled, disabled] - ssl_certificate: + socks4: type: string pattern: '^[^\s]+$' - x-dependency: - ssl: - value: enabled - ssl_cafile: + x-dependency: + check-via-socks4: + required: true + tcp_ut: + type: integer + tfo: + type: string + enum: [enabled, disabled] + track: type: string - x-display-name: SSL CA File - pattern: '^[^\s]+$' - x-dependency: - ssl: - value: enabled tls_tickets: type: string enum: [enabled, disabled] - x-dependency: - ssl: + x-dependency: + ssl: value: enabled verify: type: string @@ -638,6 +1266,16 @@ server: x-dependency: ssl: value: enabled + verifyhost: + type: string + x-dependency: + ssl: + value: enabled + verify: + value: required + weight: + type: integer + x-nullable: true additionalProperties: false example: name: www @@ -645,149 +1283,229 @@ server: port: 8080 check: enabled weight: 80 - max-connections: 500 http_request_rule: title: HTTP Request Rule description: HAProxy HTTP request rule configuration (corresponds to http-request directives) type: object required: - - id + - index - type properties: - id: + index: type: integer x-nullable: true type: type: string - enum: [allow, deny, auth, redirect, tarpit, add-header, replace-header, replace-value, del-header, set-header, set-log-level, set-path, set-query, set-uri, set-var, send-spoe-group, add-acl, del-acl ] + enum: [allow, deny, auth, redirect, tarpit, add-header, replace-header, replace-value, del-header, set-header, set-log-level, set-path, replace-path, set-query, set-uri, set-var, send-spoe-group, add-acl, del-acl, capture, track-sc0, track-sc1, track-sc2, set-map, del-map, cache-use, disable-l7-retry, early-hint, replace-uri, sc-inc-gpc0, sc-inc-gpc1, do-resolve, set-dst, set-dst-port, sc-set-gpt0, set-mark, set-nice, set-method, set-priority-class, set-priority-offset, set-src, set-src-por, wait-for-handshake, set-tos, silent-drop, unset-var, strict-mode, lua, use-service, return] x-nullable: false + capture_sample: + pattern: '^[^\s]+$' + x-display-name: Capture Sample + type: string + x-dependency: + type: + value: capture + required: true + capture_len: + type: integer + x-display-name: Capture Len + x-dependency: + type: + value: capture + required: true + capture_id: + type: integer + x-nullable: true + x-display-name: Capture SlotID + x-dependency: + type: + value: capture + required: true + track-sc0-key: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc0 Key + x-dependency: + type: + value: track-sc0 + required: true + track-sc0-table: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc0 Table + x-dependency: + type: + value: track-sc0 + track-sc1-key: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc1 Key + x-dependency: + type: + value: track-sc1 + required: true + track-sc1-table: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc1 Table + x-dependency: + type: + value: track-sc1 + track-sc2-key: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc2 Key + x-dependency: + type: + value: track-sc2 + required: true + track-sc2-table: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc2 Table + x-dependency: + type: + value: track-sc2 auth_realm: type: string x-display-name: Authentication Realm pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: auth redir_type: type: string x-display-name: Redirect Type enum: [location, prefix, scheme] - x-dependency: - type: + x-dependency: + type: value: redirect required: true redir_value: type: string x-display-name: Redirect Value pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: redirect required: true redir_code: type: integer + x-nullable: true x-display-name: Redirect Code - enum: [301, 302, 303] - x-dependency: - type: + enum: [301, 302, 303, 307, 308] + x-dependency: + type: value: redirect redir_option: type: string x-display-name: Redirect Option - x-dependency: - type: + x-dependency: + type: value: redirect required: true deny_status: type: integer - x-nullable: false - x-dependency: - type: + enum: [200, 400, 403, 405, 408, 425, 429, 500, 502, 503, 504] + x-nullable: true + x-dependency: + type: value: [deny, tarpit] hdr_name: type: string x-display-name: Header Name - pattern: '^[^\s]+$' x-dependency: - type: + type: value: [add-header, replace-header, del-header, set-header, replace-value] required: true hdr_match: type: string x-display-name: Header Match - pattern: '^[^\s]+$' x-dependency: - type: + type: value: [replace-header, replace-value] required: true hdr_format: type: string x-display-name: Header Format - pattern: '^[^\s]+$' x-dependency: - type: + type: value: [replace-header, replace-value, set-header, add-header] required: true log_level: type: string enum: [emerg, alert, crit, err, warning, notice, info, debug, silent] - x-dependency: - type: + x-dependency: + type: value: set-log-level required: true + path_match: + type: string + pattern: '^[^\s]+$' + x-dependency: + type: + value: [set-path, replace-path] + required: true path_fmt: type: string + pattern: '^[^\s]+$' x-dependency: type: + value: [set-path, replace-path] required: true - value: set-path var_name: type: string pattern: '^[^\s]+$' - x-dependency: - type: - value: set-var + x-dependency: + type: + value: [set-var, do-resolve, unset-var] required: true var_scope: type: string pattern: '^[^\s]+$' - x-dependency: - type: - value: set-var + x-dependency: + type: + value: [set-var, unset-var] required: true var_expr: type: string x-display-name: Var Expression - x-dependency: - type: + x-dependency: + type: value: set-var required: true query-fmt: - type: string - x-dependency: - type: - required: true - value: set-query + type: string + x-dependency: + type: + required: true + value: set-query + uri-match: + type: string + x-dependency: + type: + required: true + value: replace-uri uri-fmt: - type: string - x-dependency: - type: - required: true - value: set-uri + type: string + x-dependency: + type: + required: true + value: [set-uri, replace-uri] spoe_engine: type: string x-display-name: SPOE Engine pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: send-spoe-group required: true spoe_group: type: string x-display-name: SPOE Group pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: send-spoe-group required: true acl_file: @@ -795,7 +1513,7 @@ http_request_rule: x-display-name: ACL File pattern: '^[^\s]+$' x-dependency: - type: + type: value: [add-acl, del-acl] required: true acl_keyfmt: @@ -803,9 +1521,157 @@ http_request_rule: x-display-name: ACL Key Format pattern: '^[^\s]+$' x-dependency: - type: + type: value: [add-acl, del-acl] required: true + map_file: + type: string + pattern: '^[^\s]+$' + x-dependency: + type: + value: [set-map, del-map] + required: true + map_keyfmt: + type: string + x-display-name: Map Key Format + pattern: '^[^\s]+$' + x-dependency: + type: + value: [set-map, del-map] + required: true + map_valuefmt: + type: string + x-display-name: Map Value Format + pattern: '^[^\s]+$' + x-dependency: + type: + value: set-map + required: true + cache_name: + type: string + x-display-name: Cache Name + pattern: '^[^\s]+$' + x-dependency: + type: + value: cache-use + required: true + hint_name: + type: string + x-display-name: Hint Name + pattern: '^[^\s]+$' + x-dependency: + type: + value: early-hint + required: true + hint_format: + type: string + x-display-name: Hint Format + pattern: '^[^\s]+$' + x-dependency: + type: + value: early-hint + required: true + sc_id: + type: integer + x-dependency: + type: + value: [sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt0] + required: true + resolvers: + type: string + x-display-name: Resolvers + x-dependency: + type: + value: do-resolve + required: true + protocol: + type: string + enum: [ipv4, ipv6] + x-display-name: Protocol + x-dependency: + type: + value: do-resolve + required: false + expr: + type: string + x-display-name: Standard HAProxy expression + x-dependency: + type: + value: [do-resolve, set-dst, set-dst-port, set-priority-class, set-priority-offset, set-src, set-src-port] + required: true + sc_expr: + type: string + x-display-name: ScSet Expression Value + x-dependency: + type: + value: sc-set-gpt0 + required: true + sc_int: + type: integer + x-nullable: true + x-display-name: ScSet Integer Value + x-dependency: + type: + value: sc-set-gpt0 + required: true + mark_value: + type: string + pattern: '^(0x[0-9A-Fa-f]+|[0-9]+)$' + x-display-name: Mark Value + x-dependency: + type: + value: set-mark + required: true + nice_value: + type: integer + minimum: -1024 + maximum: 1024 + x-nullable: false + x-display-name: Nice Value + x-dependency: + type: + value: set-nice + required: true + method_fmt: + type: string + pattern: '^[^\s]+$' + x-dependency: + type: + value: set-method + required: true + tos_value: + type: string + pattern: '^(0x[0-9A-Fa-f]+|[0-9]+)$' + x-display-name: Tos Value + x-dependency: + type: + value: set-tos + required: true + strict_mode: + type: string + enum: ['on', 'off'] + x-dependency: + type: + value: strict-mode + required: true + lua_action: + type: string + pattern: '^[^\s]+$' + x-dependency: + type: + value: lua + required: true + lua_params: + type: string + x-dependency: + type: + value: lua + service_name: + type: string + x-dependency: + type: + value: use-service + required: true cond: type: string x-display-name: Condition @@ -817,12 +1683,56 @@ http_request_rule: operation: getACLs property: acl_name freeFormat: true - x-dependency: - cond: + x-dependency: + cond: + required: true + return_status_code: + type: integer + minimum: 200 + maximum: 599 + x-dependency: + type: + value: return + x-display-name: Return Error Code + x-nullable: true + return_content_type: + type: string + x-dependency: + type: + value: return + x-display-name: Return content type + x-nullable: true + return_content_format: + type: string + enum: [default-errorfile, errorfile, errorfiles, file, lf-file, string, lf-string] + x-dependency: + type: + value: return + return_content: + type: string + x-dependency: + return_content_format: + value: [errofile, errorfiles, file, lf-file, string, lf-string] required: true + return_hdrs: + type: array + x-go-name: ReturnHeaders + x-dependency: + return_content_format: + value: [file, lf-file, string, lf-string] + items: + type: object + required: + - name + - fmt + properties: + name: + type: string + fmt: + type: string additionalProperties: false example: - id: 0 + index: 0 type: add-header hdr_name: X-Haproxy-Current-Date hdr_format: "%T" @@ -833,96 +1743,110 @@ http_response_rule: description: HAProxy HTTP response rule configuration (corresponds to http-response directives) type: object required: - - id + - index - type properties: - id: + index: type: integer x-nullable: true type: type: string - enum: [allow, deny, redirect, add-header, set-header, del-header, set-log-level, set-var, set-status, send-spoe-group, replace-header, replace-value, add-acl, del-acl] + enum: [allow, deny, redirect, add-header, set-header, del-header, set-log-level, set-var, set-status, send-spoe-group, replace-header, replace-value, add-acl, del-acl, capture, set-map, del-map, sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt0, set-mark, set-nice, set-tos, silent-drop, unset-var, track-sc0, track-sc1, track-sc2, strict-mode, lua] x-nullable: false + capture_sample: + type: string + x-display-name: Capture Sample + pattern: '^[^\s]+$' + x-dependency: + type: + value: capture + required: true + capture_id: + type: integer + x-nullable: true + x-display-name: Capture SlotID + x-dependency: + type: + value: capture + required: true redir_type: type: string x-display-name: Redirect Type enum: [location, prefix, scheme] - x-dependency: - type: + x-dependency: + type: value: redirect required: true redir_value: type: string x-display-name: Redirect Value pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: redirect required: true redir_code: type: integer + x-nullable: true x-display-name: Redirect Code - enum: [301, 302, 303] - x-dependency: - type: + enum: [301, 302, 303, 307, 308] + x-dependency: + type: value: redirect redir_option: type: string x-display-name: Redirect Option - x-dependency: - type: + x-dependency: + type: value: redirect required: true hdr_name: type: string x-display-name: Header Name - pattern: '^[^\s]+$' x-dependency: - type: + type: value: [add-header, replace-header, del-header, set-header, replace-value] required: true hdr_match: type: string x-display-name: Header Match - pattern: '^[^\s]+$' x-dependency: - type: + type: value: [replace-header, replace-value] required: true hdr_format: type: string x-display-name: Header Format - pattern: '^[^\s]+$' x-dependency: - type: + type: value: [replace-header, replace-value, set-header, add-header] required: true log_level: type: string enum: [emerg, alert, crit, err, warning, notice, info, debug, silent] - x-dependency: - type: + x-dependency: + type: value: set-log-level required: true var_name: type: string pattern: '^[^\s]+$' - x-dependency: - type: - value: set-var + x-dependency: + type: + value: [set-var, unset-var] required: true var_scope: type: string pattern: '^[^\s]+$' - x-dependency: - type: - value: set-var + x-dependency: + type: + value: [set-var, unset-var] required: true var_expr: type: string x-display-name: Var Expression - x-dependency: - type: + x-dependency: + type: value: set-var required: true status: @@ -930,44 +1854,178 @@ http_response_rule: minimum: 100 maximum: 999 x-nullable: false - x-dependency: - type: + x-dependency: + type: value: set-status required: true status_reason: type: string - x-dependency: - type: + x-dependency: + type: value: set-status spoe_engine: type: string pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: send-spoe-group required: true spoe_group: type: string pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: send-spoe-group required: true acl_file: type: string pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: [add-acl, del-acl] required: true acl_keyfmt: type: string x-display-name: ACK Key Format pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: [add-acl, del-acl] required: true + map_file: + type: string + pattern: '^[^\s]+$' + x-dependency: + type: + value: [set-map, del-map] + required: true + map_keyfmt: + type: string + x-display-name: Map Key Format + pattern: '^[^\s]+$' + x-dependency: + type: + value: [set-map, del-map] + required: true + map_valuefmt: + type: string + x-display-name: Map Value Format + pattern: '^[^\s]+$' + x-dependency: + type: + value: set-map + required: true + sc_id: + type: integer + x-dependency: + type: + value: [sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt0] + required: true + sc_expr: + type: string + x-display-name: ScSet Expression Value + x-dependency: + type: + value: sc-set-gpt0 + required: true + sc_int: + type: integer + x-nullable: true + x-display-name: ScSet Integer Value + x-dependency: + type: + value: sc-set-gpt0 + required: true + mark_value: + type: string + pattern: '^(0x[0-9A-Fa-f]+|[0-9]+)$' + x-display-name: Mark Value + x-dependency: + type: + value: set-mark + required: true + nice_value: + type: integer + minimum: -1024 + maximum: 1024 + x-nullable: false + x-display-name: Nice Value + x-dependency: + type: + value: set-nice + required: true + tos_value: + type: string + pattern: '^(0x[0-9A-Fa-f]+|[0-9]+)$' + x-display-name: Tos Value + x-dependency: + type: + value: set-tos + required: true + track-sc0-key: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc0 Key + x-dependency: + type: + value: track-sc0 + required: true + track-sc0-table: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc0 Table + x-dependency: + type: + value: track-sc0 + track-sc1-key: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc1 Key + x-dependency: + type: + value: track-sc1 + required: true + track-sc1-table: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc1 Table + x-dependency: + type: + value: track-sc1 + track-sc2-key: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc2 Key + x-dependency: + type: + value: track-sc2 + required: true + track-sc2-table: + type: string + pattern: '^[^\s]+$' + x-display-name: track-sc2 Table + x-dependency: + type: + value: track-sc2 + strict_mode: + type: string + enum: ['on', 'off'] + x-dependency: + type: + value: strict-mode + required: true + lua_action: + type: string + pattern: '^[^\s]+$' + x-dependency: + type: + value: lua + required: true + lua_params: + type: string + x-dependency: + type: + value: lua cond: type: string x-display-name: Condition @@ -979,12 +2037,12 @@ http_response_rule: operation: getACLs property: acl_name freeFormat: true - x-dependency: - cond: + x-dependency: + cond: required: true additionalProperties: false example: - id: 0 + index: 0 type: add-header hdr_name: X-Haproxy-Current-Date hdr_format: "%T" @@ -995,37 +2053,212 @@ tcp_request_rule: description: HAProxy TCP Request Rule configuration (corresponds to tcp-request) type: object required: - - id + - index - type properties: - id: + index: type: integer x-nullable: true type: type: string enum: [connection, content, inspect-delay, session] x-nullable: false - action: + action: type: string - enum: [accept, reject] + enum: [accept, capture, do-resolve, expect-netscaler-cip, expect-proxy, reject, sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt0, send-spoe-group, set-dst-port, set-dst, set-priority, set-src, set-var, silent-drop, track-sc0, track-sc1, track-sc2, unset-var, use-service, lua] x-nullable: false - x-dependency: - type: + x-dependency: + type: + value: [connection, content, session] + required: true + capture_sample: + pattern: '^[^\s]+$' + x-display-name: Capture Sample + type: string + x-dependency: + action: + value: capture + required: true + type: + value: [connection, content] + required: true + capture_len: + type: integer + x-display-name: Capture Length + x-dependency: + action: + value: capture + required: true + type: + value: [connection, content] + required: true + resolve_var: + type: string + x-display-name: Variable name + x-dependency: + action: + value: do-resolve + required: true + type: + value: [content] + required: true + resolve_resolvers: + type: string + x-display-name: Resolvers + x-dependency: + action: + value: do-resolve + required: true + type: + value: [content] + required: true + resolve_protocol: + type: string + enum: [ipv4, ipv6] + x-display-name: Protocol + x-dependency: + action: + value: do-resolve + required: false + type: + value: [content] + required: true + sc_inc_id: + type: string + x-display-name: Sticky counter ID + x-dependency: + action: + value: [sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt0] + required: true + type: + value: [connection, content, session] + required: true + gpt_value: + type: string + x-display-name: Sticky counter value + x-dependency: + action: + value: sc-set-gpt0 + required: true + type: value: [connection, content, session] required: true + spoe_engine_name: + type: string + x-display-name: Engine name + x-dependency: + action: + value: send-spoe-group + required: true + type: + value: [content] + required: true + spoe_group_name: + type: string + x-display-name: Group name + x-dependency: + action: + value: send-spoe-group + required: true + type: + value: [content] + required: true + priority_type: + type: string + enum: [class, offset] + x-dependency: + action: + value: set-priority + required: true + type: + value: [content] + var_name: + type: string + pattern: '^[^\s]+$' + x-display-name: Variable name + x-dependency: + action: + value: [set-var, unset-var] + required: true + type: + value: [session, content] + var_scope: + type: string + pattern: '^[^\s]+$' + x-display-name: Variable scope + x-dependency: + action: + value: [set-var, unset-var] + required: true + type: + value: [session, content] + track_key: + type: string + x-display-name: Sample expression rule + x-dependency: + action: + value: [track-sc0, track-sc1, track-sc2] + required: true + type: + value: [session, connection, content] + track_table: + type: string + x-display-name: Optional table name + x-dependency: + action: + value: [track-sc0, track-sc1, track-sc2] + required: false + type: + value: [session, connection, content] + service_name: + type: string + x-display-name: Service name + x-dependency: + action: + value: use-service + required: true + type: + value: content timeout: type: integer x-nullable: true - x-dependency: - type: + x-dependency: + type: value: inspect-delay required: true + expr: + type: string + x-display-name: Standard HAProxy expression + x-dependency: + action: + value: [do-resolve, set-var, set-src, set-priority, set-dst, set-dst-port] + required: true + type: + value: [session, connection, content] + lua_action: + type: string + pattern: '^[^\s]+$' + x-display-name: Lua action name + x-dependency: + action: + value: lua + required: true + type: + value: [connection, content] + lua_params: + type: string + x-display-name: Lua action params + x-dependency: + action: + value: lua + type: + value: [connection, content] cond: type: string x-display-name: Condition enum: [if, unless] - x-dependency: - type: + x-dependency: + type: value: [connection, content, session] cond_test: type: string @@ -1034,16 +2267,16 @@ tcp_request_rule: operation: getACLs property: acl_name freeFormat: true - x-dependency: - cond: + x-dependency: + cond: required: true type: value: [connection, content, session] required: true additionalProperties: false example: - id: 0 - type: accept + index: 0 + type: connection cond: if cond_test: "{ src 192.168.0.0/16 }" tcp_response_rule: @@ -1051,37 +2284,55 @@ tcp_response_rule: description: HAProxy TCP Response Rule configuration (corresponds to tcp-response) type: object required: - - id + - index - type properties: - id: + index: type: integer x-nullable: true type: type: string enum: [content, inspect-delay] x-nullable: false - action: + action: type: string - enum: [accept, reject] + enum: [accept, reject, lua] x-nullable: false - x-dependency: - type: + x-dependency: + type: value: content required: true timeout: type: integer x-nullable: true - x-dependency: - type: + x-dependency: + type: value: inspect-delay required: true + lua_action: + type: string + pattern: '^[^\s]+$' + x-display-name: Lua action name + x-dependency: + action: + value: lua + required: true + type: + value: content + lua_params: + type: string + x-display-name: Lua action params + x-dependency: + action: + value: lua + type: + value: content cond: type: string x-display-name: Condition enum: [if, unless] - x-dependency: - type: + x-dependency: + type: value: content cond_test: type: string @@ -1090,15 +2341,15 @@ tcp_response_rule: operation: getACLs property: acl_name freeFormat: true - x-dependency: + x-dependency: cond: required: true - type: + type: value: content additionalProperties: false example: - id: 0 - type: accept + index: 0 + type: content cond: if cond_test: "{ src 192.168.0.0/16 }" backend_switching_rule: @@ -1106,10 +2357,10 @@ backend_switching_rule: description: HAProxy backend switching rule configuration (corresponds to use_backend directive) type: object required: - - id + - index - name properties: - id: + index: type: integer x-nullable: true name: @@ -1131,12 +2382,12 @@ backend_switching_rule: operation: getACLs property: acl_name freeFormat: true - x-dependency: + x-dependency: cond: required: true additionalProperties: false example: - id: 0 + index: 0 name: test_backend cond: if cond_test: "{ req_ssl_sni -i www.example.com }" @@ -1145,10 +2396,10 @@ server_switching_rule: description: HAProxy server switching rule configuration (corresponds to use-server directive) type: object required: - - id + - index - target_server properties: - id: + index: type: integer x-nullable: true target_server: @@ -1169,12 +2420,12 @@ server_switching_rule: operation: getACLs property: acl_name freeFormat: true - x-dependency: + x-dependency: cond: required: true additionalProperties: false example: - id: 0 + index: 0 target_server: www cond: if cond_test: "{ req_ssl_sni -i www.example.com }" @@ -1183,10 +2434,10 @@ filter: description: HAProxy filters type: object required: - - id + - index - type properties: - id: + index: type: integer x-nullable: true type: @@ -1196,49 +2447,49 @@ filter: trace_name: type: string pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: trace trace_rnd_parsing: type: boolean x-display-name: Trace Random Parsing - x-dependency: - type: + x-dependency: + type: value: trace trace_rnd_forwarding: type: boolean x-display-name: Trace Random Forwarding - x-dependency: - type: + x-dependency: + type: value: trace trace_hexdump: type: boolean - x-dependency: - type: + x-dependency: + type: value: trace spoe_engine: type: string pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: spoe spoe_config: type: string pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: spoe required: true cache_name: type: string pattern: '^[^\s]+$' - x-dependency: - type: + x-dependency: + type: value: cache required: true additionalProperties: false example: - id: 0 + index: 0 type: trace trace_name: name trace_rnd_parsing: true @@ -1247,11 +2498,11 @@ stick_rule: description: Define a pattern used to create an entry in a stickiness table or matching condition or associate a user to a server. type: object required: - - id + - index - type - pattern properties: - id: + index: type: integer x-nullable: true type: @@ -1276,22 +2527,22 @@ stick_rule: operation: getACLs property: acl_name freeFormat: true - x-dependency: + x-dependency: cond: required: true additionalProperties: false example: - id: 0 - type: storeonly + index: 0 + type: match pattern: src -log_target: +log_target: title: Log Target description: Per-instance logging of events and traffic. type: object required: - - id + - index properties: - id: + index: type: integer x-nullable: true global: @@ -1301,74 +2552,74 @@ log_target: address: type: string pattern: '^[^\s]+$' - x-dependency: - global: + x-dependency: + global: value: false required: true - nolog: + nolog: value: false required: true length: type: integer - x-dependency: - global: + x-dependency: + global: value: false - nolog: + nolog: value: false format: type: string enum: [rfc3164, rfc5424, short, raw] - x-dependency: - global: + x-dependency: + global: value: false - nolog: + nolog: value: false facility: type: string - enum: [kern, user, mail, daemon, auth, syslog, lpr, news, uucp, cron, auth2, ftp, ntp, audit, alert, cron2, local0,local1, local2, local3, local4, local5, local6, local7] - x-dependency: - global: + enum: [kern, user, mail, daemon, auth, syslog, lpr, news, uucp, cron, auth2, ftp, ntp, audit, alert, cron2, local0, local1, local2, local3, local4, local5, local6, local7] + x-dependency: + global: value: false required: true - nolog: + nolog: value: false required: true level: type: string enum: [emerg, alert, crit, err, warning, notice, info, debug] - x-dependency: - global: + x-dependency: + global: value: false - nolog: + nolog: value: false minlevel: type: string enum: [emerg, alert, crit, err, warning, notice, info, debug] - x-dependency: - global: + x-dependency: + global: value: false - nolog: + nolog: value: false level: required: false additionalProperties: false acl: title: ACL Lines - description: | + description: | The use of Access Control Lists (ACL) provides a flexible solution to perform content switching and generally to take decisions based on content extracted from the request, the response or any environmental status. type: object required: - - id + - index - acl_name - criterion - value properties: - id: + index: type: integer x-nullable: true - acl_name: + acl_name: type: string pattern: '^[^\s]+$' x-nullable: false @@ -1381,8 +2632,12 @@ acl: x-nullable: false additionalProperties: false default_server: + title: Default Server type: object properties: + init-addr: + pattern: ^[^\s]+$ + type: string inter: type: integer x-nullable: true @@ -1396,8 +2651,18 @@ default_server: type: integer x-nullable: true fall: + type: integer + x-display-name: Nr. of consecutive failed checks + x-nullable: true + check-sni: + type: string + pattern: '^[^\s]+$' + slowstart: type: integer x-nullable: true + sni: + type: string + pattern: '^[^\s]+$' check-ssl: type: string enum: [enabled, disabled] @@ -1406,6 +2671,266 @@ default_server: minimum: 1 maximum: 65535 x-nullable: true + resolvers: + type: string + pattern: '^[^\s]+$' + x-dynamic-enum: + operation: getResolvers + property: name + resolve-prefer: + type: string + enum: [ipv4, ipv6] + pattern: '^[^\s]+$' + x-dependency: + resolvers: + required: true + resolve-net: + type: string + pattern: '^[^\s]+$' + x-dependency: + resolvers: + required: true + name: + type: string + pattern: '^[^\s]+$' + x-nullable: false + address: + type: string + pattern: '^[^\s]+$' + x-nullable: false + health_check_port: + type: integer + x-nullable: true + minimum: 1 + maximum: 65535 + ssl_certificate: + type: string + pattern: '^[^\s]+$' + x-dependency: + ssl: + value: enabled + agent-check: + type: string + enum: [enabled, disabled] + x-dependency: + agent-port: + required: true + agent-send: + type: string + agent-inter: + type: integer + x-nullable: true + agent-addr: + type: string + pattern: '^[^\s]+$' + agent-port: + type: integer + x-nullable: true + minimum: 1 + maximum: 65535 + allow_0rtt: + type: boolean + alpn: + type: string + x-display-name: ALPN Protocols + pattern: '^[^\s]+$' + backup: + type: string + enum: [enabled, disabled] + check: + type: string + enum: [enabled, disabled] + check_alpn: + type: string + x-display-name: Protocols + pattern: '^[^\s]+$' + check_proto: + type: string + x-display-name: Name + pattern: '^[^\s]+$' + check_via_socks4: + type: string + enum: [enabled, disabled] + ciphers: + type: string + x-dependency: + ssl: + value: enabled + ciphersuites: + type: string + x-dependency: + ssl: + value: enabled + cookie: + type: string + pattern: '^[^\s]+$' + crl_file: + type: string + x-dependency: + ssl: + value: enabled + error_limit: + type: integer + x-display-name: Error count + force_sslv3: + type: string + enum: [enabled, disabled] + force_tlsv10: + type: string + enum: [enabled, disabled] + force_tlsv11: + type: string + enum: [enabled, disabled] + force_tlsv12: + type: string + enum: [enabled, disabled] + force_tlsv13: + type: string + enum: [enabled, disabled] + log_proto: + type: string + enum: [legacy, octet-count] + maxconn: + type: integer + x-display-name: Max Concurrent Connections + x-nullable: true + maxqueue: + type: integer + x-display-name: Max Number of Connections + x-nullable: true + max_reuse: + type: integer + x-nullable: true + minconn: + type: integer + x-nullable: true + namespace: + type: string + no_sslv3: + type: string + enum: [enabled, disabled] + no_tlsv10: + type: string + enum: [enabled, disabled] + no_tlsv11: + type: string + enum: [enabled, disabled] + no_tlsv12: + type: string + enum: [enabled, disabled] + no_tlsv13: + type: string + enum: [enabled, disabled] + no_verifyhost: + type: string + enum: [enabled, disabled] + npn: + type: string + x-dependency: + ssl: + value: enabled + observe: + type: string + enum: [layer4, layer7] + x-dependency: + ssl: + value: enabled + on-error: + type: string + enum: [fastinter, fail-check, sudden-death, mark-down] + on-marked-down: + type: string + enum: [shutdown-sessions] + on-marked-up: + type: string + enum: [shutdown-backup-sessions] + pool_low_conn: + type: integer + x-nullable: true + pool_max_conn: + type: integer + x-nullable: true + pool_purge_delay: + type: integer + x-nullable: true + proto: + type: string + pattern: '^[^\s]+$' + redir: + type: string + x-display-name: Prefix + resolve_opts: + type: string + pattern: '^[^,\s][^\,]*[^,\s]*$' + send-proxy: + type: string + enum: [enabled, disabled] + send-proxy-v2: + type: string + enum: [enabled, disabled] + proxy-v2-options: + type: array + items: + type: string + enum: [ssl, cert-cn, ssl-cipher, cert-sig, cert-key, authority, crc32c, unique-id] + send_proxy_v2_ssl: + type: string + enum: [enabled, disabled] + send_proxy_v2_ssl_cn: + type: string + enum: [enabled, disabled] + source: + type: string + ssl: + type: string + enum: [enabled, disabled] + ssl_max_ver: + type: string + enum: [SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3] + ssl_min_ver: + type: string + enum: [SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3] + ssl_reuse: + type: string + enum: [enabled, disabled] + stick: + type: string + enum: [enabled, disabled] + socks4: + type: string + pattern: '^[^\s]+$' + x-dependency: + check-via-socks4: + required: true + tcp_ut: + type: integer + tfo: + type: string + enum: [enabled, disabled] + track: + type: string + tls_tickets: + type: string + enum: [enabled, disabled] + x-dependency: + ssl: + value: enabled + verify: + type: string + enum: [none, required] + x-dependency: + ssl: + value: enabled + verifyhost: + type: string + x-dependency: + ssl: + value: enabled + verify: + value: required + weight: + type: integer + x-nullable: true forwardfor: type: object x-display-name: ForwardFor @@ -1475,7 +3000,6 @@ balance: hdr_name: type: string x-display-name: Header Name - pattern: '^[^\s]+$' x-dependency: algorithm: value: hdr @@ -1500,7 +3024,7 @@ balance: x-dependency: algorithm: value: rdp-cookie -httpchk: +httpchk_params: type: object x-display-name: HTTP Check properties: @@ -1528,7 +3052,7 @@ errorfile: type: object x-display-name: Error File properties: - code: + code: type: integer enum: [200, 400, 403, 405, 408, 425, 429, 500, 502, 503, 504] file: @@ -1558,9 +3082,14 @@ cookie: type: boolean domain: type: array + x-go-name: Domains items: - type: string - pattern: '^[^\s]+$' + type: object + x-go-name: Domain + properties: + value: + type: string + pattern: '^[^\s]+$' maxidle: type: integer pattern: '^[^\d+$]' @@ -1568,4 +3097,83 @@ cookie: type: integer pattern: '^[^\d+$]' dynamic: - type: boolean \ No newline at end of file + type: boolean +http-check: + type: object + required: + - type + properties: + type: + type: string + enum: [disable-on-404, expect, send-state] + exclamation_mark: + type: boolean + x-display-name: Expect Exclamation Mark + x-dependency: + type: + value: expect + match: + type: string + enum: [status, rstatus, string, rstring] + x-display-name: Expect Match + pattern: '^[^\s]+$' + x-dependency: + type: + value: expect + required: true + pattern: + type: string + x-display-name: Expect Pattern + pattern: '^[^\s]+$' + x-dependency: + type: + value: expect + required: true +stats_options: + type: object + properties: + stats_enable: + type: boolean + x-display-name: Stats Enable + stats_hide_version: + type: boolean + x-display-name: Stats Hide Version + stats_maxconn: + type: integer + minimum: 1 + stats_refresh_delay: + type: integer + x-nullable: true + stats_show_desc: + type: string + x-nullable: true + stats_show_legends: + type: boolean + x-display-name: Stats Show Legends + stats_show_node_name: + type: string + pattern: '^[^\s]+$' + x-nullable: true + stats_uri_prefix: + type: string + pattern: '^[^\s]+$' +smtpchk_params: + type: object + properties: + hello: + type: string + domain: + type: string +mysql_check_params: + type: object + properties: + username: + type: string + client_version: + type: string + enum: [pre-41, post-41] +pgsql_check_params: + type: object + properties: + username: + type: string diff --git a/models/errors.yaml b/models/errors.yaml index c097ac7..4ff4033 100644 --- a/models/errors.yaml +++ b/models/errors.yaml @@ -1,3 +1,4 @@ +--- error: title: Error description: API Error diff --git a/models/general.yaml b/models/general.yaml index 959c983..435db1b 100644 --- a/models/general.yaml +++ b/models/general.yaml @@ -1,3 +1,4 @@ +--- endpoint: title: Endpoint description: Endpoint definition @@ -84,7 +85,7 @@ transaction: id: type: string pattern: '^[^\s]+$' - status: + status: type: string enum: [failed, in_progress, success] _version: @@ -103,7 +104,7 @@ reload: pattern: '^\d{4}-\d{2}-\d{2}-\d+$' reload_timestamp: type: integer - status: + status: type: string enum: [failed, in_progress, succeeded] response: diff --git a/models/monitor.yaml b/models/monitor.yaml new file mode 100644 index 0000000..609cf01 --- /dev/null +++ b/models/monitor.yaml @@ -0,0 +1,19 @@ +--- +monitor_uri: + type: string +monitor_fail: + required: + - cond + - cond_test + type: object + properties: + cond: + type: string + x-display-name: Condition + enum: [if, unless] + cond_test: + type: string + x-display-name: Condition Test + x-dependency: + cond: + required: true diff --git a/models/runtime.yaml b/models/runtime.yaml index 569bd0f..6679d51 100644 --- a/models/runtime.yaml +++ b/models/runtime.yaml @@ -1,217 +1,211 @@ +--- process_infos: title: HAProxy Information description: General HAProxy process information type: array - items: - type: object - x-go-name: ProcessInfo - properties: - runtimeAPI: - type: string - error: - type: string - info: - type: object - x-go-name: ProcessInfoItem - properties: - version: - type: string - description: HAProxy version string - release_date: - type: string - format: date - description: HAProxy version release date - nbthread: - type: integer - description: Number of threads - x-display-name: Number of Threads - x-nullable: true - processes: - type: integer - description: Number of spawned processes - x-nullable: true - x-display-name: Number of processes - process_num: - type: integer - description: Process number - x-display-name: Process Number - x-nullable: true - pid: - type: integer - description: Process id of the replying worker process - x-nullable: true - x-display-name: PID - uptime: - type: integer - description: HAProxy uptime in s - x-nullable: true - mem_max_mb: - type: integer - x-nullable: true - pool_alloc_mb: - type: integer - x-nullable: true - pool_used_mb: - type: integer - x-nullable: true - pool_failed: - type: integer - x-nullable: true - ulimit_n: - type: integer - x-nullable: true - max_sock: - type: integer - x-nullable: true - max_conn: - type: integer - x-nullable: true - hard_max_conn: - type: integer - x-nullable: true - curr_conns: - type: integer - x-nullable: true - cum_conns: - type: integer - x-nullable: true - cum_req: - type: integer - x-nullable: true - max_ssl_conns: - type: integer - x-nullable: true - curr_ssl_conns: - type: integer - x-nullable: true - cum_ssl_conns: - type: integer - x-nullable: true - max_pipes: - type: integer - x-nullable: true - pipes_used: - type: integer - x-nullable: true - pipes_free: - type: integer - x-nullable: true - conn_rate: - type: integer - x-nullable: true - conn_rate_limit: - type: integer - x-nullable: true - max_conn_rate: - type: integer - x-nullable: true - sess_rate: - type: integer - x-nullable: true - sess_rate_limit: - type: integer - x-nullable: true - max_sess_rate: - type: integer - x-nullable: true - ssl_rate: - type: integer - x-nullable: true - ssl_rate_limit: - type: integer - x-nullable: true - max_ssl_rate: - type: integer - x-nullable: true - ssl_frontend_key_rate: - type: integer - x-nullable: true - ssl_frontend_max_key_rate: - type: integer - x-nullable: true - ssl_frontend_session_reuse: - type: integer - x-nullable: true - ssl_backend_key_rate: - type: integer - x-nullable: true - ssl_backend_max_key_rate: - type: integer - x-nullable: true - ssl_cache_lookups: - type: integer - x-nullable: true - ssl_cache_misses: - type: integer - x-nullable: true - compress_bps_in: - type: integer - x-nullable: true - compress_bps_out: - type: integer - x-nullable: true - compress_bps_rate_lim: - type: integer - x-nullable: true - zlib_mem_usage: - type: integer - x-nullable: true - max_zlib_mem_usage: - type: integer - x-nullable: true - tasks: - type: integer - x-nullable: true - run_queue: - type: integer - x-nullable: true - idle_pct: - type: integer - x-nullable: true - node: - type: string - stopping: - type: integer - x-nullable: true - jobs: - type: integer - x-nullable: true - unstoppable: - type: integer - x-nullable: true - listeners: - type: integer - x-nullable: true - active_peers: - type: integer - x-nullable: true - connected_peers: - type: integer - x-nullable: true - dropped_logs: - type: integer - x-nullable: true - busy_polling: - type: integer - x-nullable: true - failed_resolutions: - type: integer - x-nullable: true - total_bytes_out: - type: integer - x-nullable: true - bytes_out_rate: - type: integer - x-nullable: true - example: - haproxy: - version: 1.7-dev1-868ab3-148 - release_date: "2016-03-11" - address: 127.0.0.1 - time: 2018-07-02T12:00:00.124Z - processes: 4 - pid: 1234 - uptime: 8 + items: + $ref: '#/definitions/process_info' +process_info: + type: object + properties: + runtimeAPI: + type: string + error: + type: string + info: + $ref: '#/definitions/process_info_item' +process_info_item: + type: object + properties: + version: + type: string + description: HAProxy version string + release_date: + type: string + format: date + description: HAProxy version release date + nbthread: + type: integer + description: Number of threads + x-display-name: Number of Threads + x-nullable: true + processes: + type: integer + description: Number of spawned processes + x-nullable: true + x-display-name: Number of processes + process_num: + type: integer + description: Process number + x-display-name: Process Number + x-nullable: true + pid: + type: integer + description: Process id of the replying worker process + x-nullable: true + x-display-name: PID + uptime: + type: integer + description: HAProxy uptime in s + x-nullable: true + mem_max_mb: + type: integer + x-nullable: true + pool_alloc_mb: + type: integer + x-nullable: true + pool_used_mb: + type: integer + x-nullable: true + pool_failed: + type: integer + x-nullable: true + ulimit_n: + type: integer + x-nullable: true + max_sock: + type: integer + x-nullable: true + max_conn: + type: integer + x-nullable: true + hard_max_conn: + type: integer + x-nullable: true + curr_conns: + type: integer + x-nullable: true + cum_conns: + type: integer + x-nullable: true + cum_req: + type: integer + x-nullable: true + max_ssl_conns: + type: integer + x-nullable: true + curr_ssl_conns: + type: integer + x-nullable: true + cum_ssl_conns: + type: integer + x-nullable: true + max_pipes: + type: integer + x-nullable: true + pipes_used: + type: integer + x-nullable: true + pipes_free: + type: integer + x-nullable: true + conn_rate: + type: integer + x-nullable: true + conn_rate_limit: + type: integer + x-nullable: true + max_conn_rate: + type: integer + x-nullable: true + sess_rate: + type: integer + x-nullable: true + sess_rate_limit: + type: integer + x-nullable: true + max_sess_rate: + type: integer + x-nullable: true + ssl_rate: + type: integer + x-nullable: true + ssl_rate_limit: + type: integer + x-nullable: true + max_ssl_rate: + type: integer + x-nullable: true + ssl_frontend_key_rate: + type: integer + x-nullable: true + ssl_frontend_max_key_rate: + type: integer + x-nullable: true + ssl_frontend_session_reuse: + type: integer + x-nullable: true + ssl_backend_key_rate: + type: integer + x-nullable: true + ssl_backend_max_key_rate: + type: integer + x-nullable: true + ssl_cache_lookups: + type: integer + x-nullable: true + ssl_cache_misses: + type: integer + x-nullable: true + compress_bps_in: + type: integer + x-nullable: true + compress_bps_out: + type: integer + x-nullable: true + compress_bps_rate_lim: + type: integer + x-nullable: true + zlib_mem_usage: + type: integer + x-nullable: true + max_zlib_mem_usage: + type: integer + x-nullable: true + tasks: + type: integer + x-nullable: true + run_queue: + type: integer + x-nullable: true + idle_pct: + type: integer + x-nullable: true + node: + type: string + stopping: + type: integer + x-nullable: true + jobs: + type: integer + x-nullable: true + unstoppable: + type: integer + x-nullable: true + listeners: + type: integer + x-nullable: true + active_peers: + type: integer + x-nullable: true + connected_peers: + type: integer + x-nullable: true + dropped_logs: + type: integer + x-nullable: true + busy_polling: + type: integer + x-nullable: true + failed_resolutions: + type: integer + x-nullable: true + total_bytes_out: + type: integer + x-nullable: true + bytes_out_rate: + type: integer + x-nullable: true server: title: Runtime Server description: Runtime transient server properties @@ -231,7 +225,7 @@ server: port: type: integer x-nullable: true - minimum: 0 + minimum: 1 maximum: 65535 readOnly: true operational_state: @@ -246,7 +240,7 @@ server: address: 127.0.0.5 port: 80 operational_state: up - admin_state: up + admin_state: ready table: title: Stick Table description: Stick Table Information @@ -275,7 +269,7 @@ table: properties: field: type: string - enum: [server_id, gpc0, gpc0_rate, gpc1, gpc1_rate, conn_cnt, conn_cur, conn_rate, sess_cnt, sess_rate, http_req_cnt, http_req_rate, http_err_cnt, http_err_rate, bytes_in_cnt, bytes_in_rate, bytes_out_cnt, bytes_out_rate] + enum: [server_id, gpc0, gpc0_rate, gpc1, gpc1_rate, gpt0, conn_cnt, conn_cur, conn_rate, sess_cnt, sess_rate, http_req_cnt, http_req_rate, http_err_cnt, http_err_rate, bytes_in_cnt, bytes_in_rate, bytes_out_cnt, bytes_out_rate] type: type: string enum: [rate, counter] @@ -308,6 +302,9 @@ table_entry: gpc1_rate: type: integer x-nullable: true + gpt0: + type: integer + x-nullable: true conn_cnt: type: integer x-nullable: true @@ -351,4 +348,116 @@ table_entry: type: integer x-nullable: true use: - type: boolean \ No newline at end of file + type: boolean +map: + title: Map File + description: Map File + type: object + properties: + id: + type: string + file: + type: string + storage_name: + type: string + description: + type: string +map_entry: + title: One Map Entry + description: One Map Entry + type: object + properties: + id: + type: string + readOnly: true + key: + type: string + value: + type: string +ssl_certificate: + title: SSL File + description: A file containing one or more SSL/TLS certificates and keys + type: object + properties: + file: + type: string + storage_name: + type: string + description: + type: string +ssl_cert_entry: + title: One SSL Certificate Entry + description: One SSL/TLS certificate + type: object + properties: + storage_name: + type: string + status: + type: string + serial: + type: string + not_before: + type: string + format: date + not_after: + type: string + format: date + subject_alternative_names: + type: array + items: + type: string + algorithm: + type: string + sha1_finger_print: + type: string + subject: + type: string + issuer: + type: string + chain_subject: + type: string + chain_issuer: + type: string +ssl_crt_list: + title: crt-list + description: One SSL/TLS certificate + type: object + properties: + file: + type: string +ssl_crt_list_entry: + title: One crt-list Entry + description: One SSL/TLS certificate + type: object + properties: + line_number: + type: string + file: + type: string + ssl_bind_config: + type: string + sni_filters: + type: array + items: + type: string +acl_file: + title: ACL File + description: ACL File + type: object + properties: + id: + type: string + storage_name: + type: string + description: + type: string +acl_file_entry: + title: One ACL File Entry + description: One ACL File Entry + type: object + properties: + id: + type: string + readOnly: true + value: + type: string diff --git a/models/service-discovery.yaml b/models/service-discovery.yaml new file mode 100644 index 0000000..7ef8902 --- /dev/null +++ b/models/service-discovery.yaml @@ -0,0 +1,58 @@ +--- +consul: + title: Consul server + description: Consul server configuration + type: object + required: [address, port, enabled, retry_timeout] + properties: + id: + type: string + x-nullable: true + pattern: '^[^\s]+$' + description: Auto generated ID. + address: + type: string + pattern: '^[^\s]+$' + port: + type: integer + minimum: 1 + maximum: 65535 + token: + type: string + pattern: '^[^\s]+$' + enabled: + type: boolean + retry_timeout: + type: integer + minimum: 1 + description: Duration in seconds in-between data pulling requests to the consul server + service-whitelist: + type: array + items: + type: string + pattern: '^[^\s]+$' + service-blacklist: + type: array + items: + type: string + pattern: '^[^\s]+$' + server_slots_base: + type: integer + default: 10 + server_slots_growth_type: + type: string + enum: [linear, exponential] + default: exponential + server_slots_growth_increment: + type: integer + description: + type: string + name: + type: string + additionalProperties: false + example: + id: "0" + enabled: true + address: 127.0.0.1 + port: 90 + retry_timeout: 10 diff --git a/models/simple.yaml b/models/simple.yaml index 1e6f310..781b722 100644 --- a/models/simple.yaml +++ b/models/simple.yaml @@ -1,15 +1,16 @@ +--- site: title: Site description: | Site configuration. Sites are considered as one service and all farms connected to that service. Farms are connected to service using use-backend and default_backend directives. Sites let you - configure simple HAProxy configurations, for more advanced options use /haproxy/configuration + configure simple HAProxy configurations, for more advanced options use /haproxy/configuration endpoints. type: object required: - name properties: - name: + name: type: string pattern: '^[A-Za-z0-9-_.:]+$' x-nullable: false @@ -24,7 +25,7 @@ site: x-display-name: HTTP Connection Mode enum: [http-tunnel, httpclose, forced-close, http-server-close, http-keep-alive] x-dependency: - mode: + mode: value: http maxconn: type: integer @@ -47,7 +48,7 @@ site: type: string pattern: '^[A-Za-z0-9-_.:]+$' x-nullable: false - use_as: + use_as: type: string enum: [default, conditional] x-nullable: false @@ -56,14 +57,14 @@ site: x-display-name: Condition enum: [if, unless] x-dependency: - use_as: + use_as: value: conditional required: true cond_test: type: string x-display-name: Condition Test x-dependency: - use_as: + use_as: value: conditional required: true balance: @@ -73,9 +74,9 @@ site: enum: [http, tcp] forwardfor: $ref: "#/definitions/forwardfor" - servers: + servers: type: array - items: + items: $ref: "#/definitions/server" additionalProperties: false example: @@ -94,10 +95,10 @@ site: farms: - name: www_backend use_as: default - balance: + balance: algorithm: roundrobin mode: http - servers: + servers: - name: www_server address: 127.0.1.1 port: 4567 diff --git a/models/spoe-transactions.yaml b/models/spoe-transactions.yaml new file mode 100644 index 0000000..5162d05 --- /dev/null +++ b/models/spoe-transactions.yaml @@ -0,0 +1,18 @@ +--- +spoe_transaction: + title: SPOE configuration transaction + description: SPOE configuration transaction + type: object + properties: + id: + type: string + pattern: '^[^\s]+$' + status: + type: string + enum: [failed, in_progress, success] + _version: + type: integer + example: + id: 273e3385-2d0c-4fb1-aa27-93cbb31ff203 + status: in_progress + _version: 2 diff --git a/models/spoe.yaml b/models/spoe.yaml new file mode 100644 index 0000000..d7770fd --- /dev/null +++ b/models/spoe.yaml @@ -0,0 +1,118 @@ +--- +spoe_files: + title: SPOE files + description: SPOE files + type: array + items: + type: string +spoe_scope: + title: SPOE scope + description: SPOE scope name + type: string +spoe_agent: + title: SPOE agent + description: SPOE agent configuration + type: object + required: + - name + properties: + engine-name: + type: string + name: + type: string + groups: + type: string + log: + $ref: "#/definitions/log_targets" + maxconnrate: + type: integer + maxerrrate: + type: integer + max-frame-size: + type: integer + max-waiting-frames: + type: integer + messages: + type: string + async: + type: string + enum: [enabled, disabled] + continue-on-error: + type: string + enum: [enabled] + dontlog-normal: + type: string + enum: [enabled, disabled] + force-set-var: + type: string + enum: [enabled] + pipelining: + type: string + enum: [enabled, disabled] + send-frag-payload: + type: string + enum: [enabled, disabled] + option_set-on-error: + type: string + pattern: '^[A-Za-z0-9-_.]+$' + option_set-process-time: + type: string + pattern: '^[A-Za-z0-9-_.]+$' + option_set-total-time: + type: string + pattern: '^[A-Za-z0-9-_.]+$' + option_var-prefix: + type: string + pattern: '^[A-Za-z0-9-_.]+$' + register-var-names: + type: string + hello_timeout: + type: integer + idle_timeout: + type: integer + processing_timeout: + type: integer + use-backend: + type: string +spoe_message: + title: SPOE message + description: SPOE message section configuration + type: object + required: + - name + properties: + name: + type: string + acl: + $ref: "#/definitions/acls" + args: + type: string + event: + type: object + required: + - name + properties: + name: + type: string + enum: [on-client-session, on-server-session, on-frontend-tcp-request, on-backend-tcp-request, on-tcp-response, on-frontend-http-request, on-backend-http-request, on-http-response] + cond: + type: string + x-display-name: Condition + enum: [if, unless] + cond_test: + type: string + x-display-name: Condition Test + x-dependency: + cond: + required: true +spoe_group: + title: SPOE group + description: SPOE group section configuration + type: object + required: + - name + properties: + name: + type: string + messages: + type: string diff --git a/models/stats.yaml b/models/stats.yaml index 3e53b6f..9d96601 100644 --- a/models/stats.yaml +++ b/models/stats.yaml @@ -1,25 +1,25 @@ +--- native_stats: - x-go-name: NativeStats title: Stats Array description: HAProxy stats array type: array items: - type: object - title: Stats collection - description: Stats from one runtime API - x-go-name: NativeStatsCollection - properties: - runtimeAPI: - type: string - stats: - type: array - items: - $ref: "#/definitions/native_stat" - error: - type: string + $ref: "#/definitions/native_stats_collection" +native_stats_collection: + type: object + title: Stats collection + description: Stats from one runtime API + properties: + runtimeAPI: + type: string + stats: + type: array + items: + $ref: "#/definitions/native_stat" + error: + type: string native: title: Stats - x-go-name: NativeStat description: Current stats for one object. type: object properties: @@ -33,391 +33,388 @@ native: x-dependency: type: server stats: - type: object - x-go-name: NativeStatStats - properties: - qcur: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - qmax: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - scur: - type: integer - x-nullable: true - smax: - type: integer - x-nullable: true - slim: - type: integer - x-nullable: true - stot: - type: integer - x-nullable: true - bin: - type: integer - x-nullable: true - bout: - type: integer - x-nullable: true - dreq: - type: integer - x-nullable: true - x-dependency: - type: [frontend, backend] - dresp: - type: integer - x-nullable: true - ereq: - type: integer - x-nullable: true - x-dependency: - type: frontend - econ: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - eresp: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - wretr: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - wredis: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - status: - type: string - enum: [UP, DOWN, NOLB, MAINT, no check] - weight: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - act: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - bck: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - chkfail: - type: integer - x-nullable: true - x-dependency: - type: server - chkdown: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - lastchg: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - downtime: - type: integer - x-nullable: true - x-dependency: - type: server - qlimit: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - pid: - type: integer - x-nullable: true - iid: - type: integer - x-nullable: true - sid: - type: integer - x-nullable: true - x-dependency: - type: server - throttle: - type: integer - x-nullable: true - x-dependency: - type: server - lbtot: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - tracked: - type: integer - x-nullable: true - x-dependency: - type: server - rate: - type: integer - x-nullable: true - rate_lim: - type: integer - x-nullable: true - x-dependency: - type: frontend - rate_max: - type: integer - x-nullable: true - check_status: - type: string - enum: [UNK, INI, SOCKERR, L40K, L4TOUT, L4CON, L6OK, L6TOUT, L6RSP, L7OK, L7OKC, L7TOUT, L7RSP, L7STS] - x-dependency: - type: server - check_code: - type: integer - x-nullable: true - x-dependency: - type: server - check_duration: - type: integer - x-nullable: true - x-dependency: - type: server - hrsp_1xx: - type: integer - x-nullable: true - hrsp_2xx: - type: integer - x-nullable: true - hrsp_3xx: - type: integer - x-nullable: true - hrsp_4xx: - type: integer - x-nullable: true - hrsp_5xx: - type: integer - x-nullable: true - hrsp_other: - type: integer - x-nullable: true - hanafail: - type: string - x-dependency: - type: server - req_rate: - type: integer - x-nullable: true - x-dependency: - type: frontend - req_rate_max: - type: integer - x-nullable: true - x-dependency: - type: frontend - req_tot: - type: integer - x-nullable: true - x-dependency: - type: [frontend, backend] - cli_abrt: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - srv_abrt: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - comp_in: - type: integer - x-nullable: true - x-dependency: - type: [frontend, backend] - comp_out: - type: integer - x-nullable: true - x-dependency: - type: [frontend, backend] - comp_byp: - type: integer - x-nullable: true - x-dependency: - type: [frontend, backend] - comp_rsp: - type: integer - x-nullable: true - x-dependency: - type: [frontend, backend] - lastsess: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - qtime: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - ctime: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - rtime: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - ttime: - type: integer - x-nullable: true - x-dependency: - type: [server, backend] - agent_status: - type: string - enum: [UNK, INI, SOCKERR, L40K, L4TOUT, L4CON, L7OK, L7STS] - x-dependency: - type: server - agent_code: - type: integer - x-nullable: true - x-dependency: - type: server - agent_duration: - type: integer - x-nullable: true - x-dependency: - type: server - check_desc: - type: string - x-dependency: - type: server - agent_desc: - type: string - x-dependency: - type: server - check_rise: - type: integer - x-nullable: true - x-dependency: - type: server - check_fall: - type: integer - x-nullable: true - x-dependency: - type: server - check_health: - type: integer - x-nullable: true - x-dependency: - type: server - agent_rise: - type: integer - x-nullable: true - x-dependency: - type: server - agent_fall: - type: integer - x-nullable: true - x-dependency: - type: server - agent_health: - type: integer - x-nullable: true - x-dependency: - type: server - addr: - type: string - x-dependency: - type: server - cookie: - type: string - x-dependency: - type: [server, backend] - mode: - type: string - enum: [tcp, http, health, unknown] - algo: - type: string - x-dependency: - type: backend - conn_rate: - type: integer - x-nullable: true - x-dependency: - type: frontend - conn_rate_max: - type: integer - x-nullable: true - x-dependency: - type: frontend - conn_tot: - type: integer - x-nullable: true - x-dependency: - type: frontend - intercepted: - type: integer - x-nullable: true - x-dependency: - type: [frontend, backend] - dcon: - type: integer - x-nullable: true - x-dependency: - type: frontend - dses: - type: integer - x-nullable: true - x-dependency: - type: frontend + $ref: "#/definitions/native_stat_stats" +native_stat_stats: + type: object + properties: + qcur: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + qmax: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + scur: + type: integer + x-nullable: true + smax: + type: integer + x-nullable: true + slim: + type: integer + x-nullable: true + stot: + type: integer + x-nullable: true + bin: + type: integer + x-nullable: true + bout: + type: integer + x-nullable: true + dreq: + type: integer + x-nullable: true + x-dependency: + type: [frontend, backend] + dresp: + type: integer + x-nullable: true + ereq: + type: integer + x-nullable: true + x-dependency: + type: frontend + econ: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + eresp: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + wretr: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + wredis: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + status: + type: string + enum: [UP, DOWN, NOLB, MAINT, no check] + weight: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + act: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + bck: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + chkfail: + type: integer + x-nullable: true + x-dependency: + type: server + chkdown: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + lastchg: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + downtime: + type: integer + x-nullable: true + x-dependency: + type: server + qlimit: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + pid: + type: integer + x-nullable: true + iid: + type: integer + x-nullable: true + sid: + type: integer + x-nullable: true + x-dependency: + type: server + throttle: + type: integer + x-nullable: true + x-dependency: + type: server + lbtot: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + tracked: + type: string + x-dependency: + type: server + rate: + type: integer + x-nullable: true + rate_lim: + type: integer + x-nullable: true + x-dependency: + type: frontend + rate_max: + type: integer + x-nullable: true + check_status: + type: string + enum: [UNK, INI, SOCKERR, L40K, L4TOUT, L4CON, L6OK, L6TOUT, L6RSP, L7OK, L7OKC, L7TOUT, L7RSP, L7STS] + x-dependency: + type: server + check_code: + type: integer + x-nullable: true + x-dependency: + type: server + check_duration: + type: integer + x-nullable: true + x-dependency: + type: server + hrsp_1xx: + type: integer + x-nullable: true + hrsp_2xx: + type: integer + x-nullable: true + hrsp_3xx: + type: integer + x-nullable: true + hrsp_4xx: + type: integer + x-nullable: true + hrsp_5xx: + type: integer + x-nullable: true + hrsp_other: + type: integer + x-nullable: true + hanafail: + type: string + x-dependency: + type: server + req_rate: + type: integer + x-nullable: true + x-dependency: + type: frontend + req_rate_max: + type: integer + x-nullable: true + x-dependency: + type: frontend + req_tot: + type: integer + x-nullable: true + x-dependency: + type: [frontend, backend] + cli_abrt: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + srv_abrt: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + comp_in: + type: integer + x-nullable: true + x-dependency: + type: [frontend, backend] + comp_out: + type: integer + x-nullable: true + x-dependency: + type: [frontend, backend] + comp_byp: + type: integer + x-nullable: true + x-dependency: + type: [frontend, backend] + comp_rsp: + type: integer + x-nullable: true + x-dependency: + type: [frontend, backend] + lastsess: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + qtime: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + ctime: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + rtime: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + ttime: + type: integer + x-nullable: true + x-dependency: + type: [server, backend] + agent_status: + type: string + enum: [UNK, INI, SOCKERR, L40K, L4TOUT, L4CON, L7OK, L7STS] + x-dependency: + type: server + agent_code: + type: integer + x-nullable: true + x-dependency: + type: server + agent_duration: + type: integer + x-nullable: true + x-dependency: + type: server + check_desc: + type: string + x-dependency: + type: server + agent_desc: + type: string + x-dependency: + type: server + check_rise: + type: integer + x-nullable: true + x-dependency: + type: server + check_fall: + type: integer + x-nullable: true + x-dependency: + type: server + check_health: + type: integer + x-nullable: true + x-dependency: + type: server + agent_rise: + type: integer + x-nullable: true + x-dependency: + type: server + agent_fall: + type: integer + x-nullable: true + x-dependency: + type: server + agent_health: + type: integer + x-nullable: true + x-dependency: + type: server + addr: + type: string + x-dependency: + type: server + cookie: + type: string + x-dependency: + type: [server, backend] + mode: + type: string + enum: [tcp, http, health, unknown] + algo: + type: string + x-dependency: + type: backend + conn_rate: + type: integer + x-nullable: true + x-dependency: + type: frontend + conn_rate_max: + type: integer + x-nullable: true + x-dependency: + type: frontend + conn_tot: + type: integer + x-nullable: true + x-dependency: + type: frontend + intercepted: + type: integer + x-nullable: true + x-dependency: + type: [frontend, backend] + dcon: + type: integer + x-nullable: true + x-dependency: + type: frontend + dses: + type: integer + x-nullable: true + x-dependency: + type: frontend example: - type: frontend - name: frontend_test - stats: - scur: 129 - smax: 2000 - slim: 2000 - stot: 12902 - bin: 4326578 - bout: 889901290 - dreq: 4 - dresp: 1 - ereq: 54 - status: UP - pid: 3204 - iid: 0 - rate: 64 - rate_lim: 20000 - rate_max: 4000 - hrsp_1xx: 0 - hrsp_2xx: 165 - hrsp_3xx: 12 - hrsp_4xx: 50 - hrsp_5xx: 4 - hrsp_other: 0 - req_rate: 49 - req_rate_max: 3965 - req_total: 1254786 - comp_in: 0 - comp_out: 0 - comp_byp: 0 - comp_rsp: 0 - mode: http - conn_rate: 12 - conn_rate_max: 456 - conn_tot: 45682 - intercepted: 346 - dcon: 0 - dses: 0 + scur: 129 + smax: 2000 + slim: 2000 + stot: 12902 + bin: 4326578 + bout: 889901290 + dreq: 4 + dresp: 1 + ereq: 54 + status: UP + pid: 3204 + iid: 0 + rate: 64 + rate_lim: 20000 + rate_max: 4000 + hrsp_1xx: 0 + hrsp_2xx: 165 + hrsp_3xx: 12 + hrsp_4xx: 50 + hrsp_5xx: 4 + hrsp_other: 0 + req_rate: 49 + req_rate_max: 3965 + req_total: 1254786 + comp_in: 0 + comp_out: 0 + comp_byp: 0 + comp_rsp: 0 + mode: http + conn_rate: 12 + conn_rate_max: 456 + conn_tot: 45682 + intercepted: 346 + dcon: 0 + dses: 0 diff --git a/paths/cluster.yaml b/paths/cluster.yaml new file mode 100644 index 0000000..50196b9 --- /dev/null +++ b/paths/cluster.yaml @@ -0,0 +1,60 @@ +--- +cluster: + get: + tags: + - Discovery + summary: Return cluster data + description: Returns cluster data + operationId: getCluster + produces: + - application/json + responses: + '200': + description: Success + schema: + $ref: '#/definitions/cluster_settings' + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Post cluster settings + description: Post cluster settings + operationId: postCluster + parameters: + - name: data + required: true + in: body + schema: + $ref: "#/definitions/cluster_settings" + - name: configuration + description: In case of moving to single mode do we keep or clean configuration + enum: + - keep + in: query + required: false + type: string + - $ref: "#/parameters/version" + tags: + - Cluster + responses: + '200': + description: Cluster settings changed + schema: + $ref: "#/definitions/cluster_settings" + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +certificate: + post: + tags: + - Cluster + summary: Initiates a certificate refresh + description: Initiates a certificate refresh + operationId: initiateCertificateRefresh + responses: + '200': + description: refresh activated + '403': + description: refresh not possible + 'default': + $ref: '#/responses/DefaultError' diff --git a/paths/configuration.yaml b/paths/configuration.yaml index 3744d86..c5457cc 100644 --- a/paths/configuration.yaml +++ b/paths/configuration.yaml @@ -1,3 +1,4 @@ +--- global: get: summary: Return a global part of configuration @@ -7,7 +8,6 @@ global: - $ref: "#/parameters/transaction_id" tags: - Global - - HAProxy configuration management responses: '200': description: Successful operation @@ -40,7 +40,6 @@ global: - $ref: "#/parameters/force_reload" tags: - Global - - HAProxy configuration management responses: '202': description: Configuration change accepted and reload requested @@ -67,7 +66,6 @@ defaults: - $ref: "#/parameters/transaction_id" tags: - Defaults - - HAProxy configuration management responses: '200': description: Successful operation @@ -100,7 +98,6 @@ defaults: - $ref: "#/parameters/force_reload" tags: - Defaults - - HAProxy configuration management responses: '202': description: Configuration change accepted and reload requested @@ -127,7 +124,6 @@ frontends: - $ref: "#/parameters/transaction_id" tags: - Frontend - - HAProxy configuration management responses: '200': description: Successful operation @@ -162,7 +158,6 @@ frontends: - $ref: "#/parameters/force_reload" tags: - Frontend - - HAProxy configuration management responses: '202': description: Configuration change accepted and reload requested @@ -189,7 +184,6 @@ frontends_one: operationId: getFrontend tags: - Frontend - - HAProxy configuration management parameters: - name: name in: path @@ -222,7 +216,6 @@ frontends_one: operationId: replaceFrontend tags: - Frontend - - HAProxy configuration management parameters: - name: name in: path @@ -262,7 +255,6 @@ frontends_one: operationId: deleteFrontend tags: - Frontend - - HAProxy configuration management parameters: - name: name in: path @@ -294,7 +286,6 @@ backends: - $ref: "#/parameters/transaction_id" tags: - Backend - - HAProxy configuration management responses: '200': description: Successful operation @@ -329,7 +320,6 @@ backends: - $ref: "#/parameters/force_reload" tags: - Backend - - HAProxy configuration management responses: '202': description: Configuration change accepted and reload requested @@ -356,7 +346,6 @@ backends_one: operationId: getBackend tags: - Backend - - HAProxy configuration management parameters: - name: name in: path @@ -389,7 +378,6 @@ backends_one: operationId: replaceBackend tags: - Backend - - HAProxy configuration management parameters: - name: name in: path @@ -425,17 +413,474 @@ backends_one: $ref: '#/responses/DefaultError' delete: summary: Delete a backend - description: Deletes a frontend from the configuration by it's name. + description: Deletes a backend from the configuration by it's name. operationId: deleteBackend tags: - - Backend - - HAProxy configuration management + - Backend + parameters: + - name: name + in: path + description: Backend name + required: true + type: string + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + '204': + description: Backend deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +peer_section: + get: + summary: Return an array of peer_section + description: Returns an array of all configured peer_section. + operationId: getPeerSections + parameters: + - $ref: "#/parameters/transaction_id" + tags: + - Peer + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + type: object + required: + - data + properties: + data: + $ref: "#/definitions/peer_sections" + _version: + type: integer + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a peer + description: Adds a new peer to the configuration file. + operationId: createPeer + parameters: + - name: data + required: true + in: body + schema: + $ref: "#/definitions/peer_section" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + tags: + - Peer + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: "#/definitions/peer_section" + '201': + description: Peer created + schema: + $ref: "#/definitions/peer_section" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +peer_section_one: + get: + summary: Return a peer + description: Returns one peer configuration by it's name. + operationId: getPeerSection + tags: + - Peer + parameters: + - name: name + in: path + description: Peer name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/peer_section" + _version: + type: integer + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a peer + description: Deletes a peer from the configuration by it's name. + operationId: deletePeer + tags: + - Peer + parameters: + - name: name + in: path + description: Peer name + required: true + type: string + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + '204': + description: Peer deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +peer_entries: + get: + summary: Return an array of peer_entries + description: Returns an array of all peer_entries that are configured in specified peer section. + operationId: getPeerEntries + tags: + - PeerEntry + parameters: + - name: peer_section + in: query + description: Parent peer section name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + type: object + required: + - data + properties: + data: + $ref: "#/definitions/peer_entries" + _version: + type: integer + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a new peer_entry + description: Adds a new peer entry in the specified peer section in the configuration file. + operationId: createPeerEntry + tags: + - PeerEntry + parameters: + - name: peer_section + in: query + description: Parent peer section name + required: true + type: string + - name: data + in: body + required: true + schema: + $ref: '#/definitions/peer_entry' + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: "#/definitions/peer_entry" + '201': + description: PeerEntry created + schema: + $ref: "#/definitions/peer_entry" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +peer_entries_one: + get: + summary: Return one peer_entry + description: Returns one peer_entry configuration by it's name in the specified peer section. + operationId: getPeerEntry + tags: + - PeerEntry + parameters: + - name: name + in: path + description: PeerEntry name + required: true + type: string + - name: peer_section + in: query + description: Parent peers name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/peer_entry" + _version: + type: integer + '404': + $ref: '#/responses/AlreadyExists' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace a peer_entry + description: Replaces a peer entry configuration by it's name in the specified peer section. + operationId: replacePeerEntry + tags: + - PeerEntry + parameters: + - name: name + in: path + description: PeerEntry name + required: true + type: string + - name: peer_section + in: query + description: Parent peers name + required: true + type: string + - name: data + in: body + required: true + schema: + $ref: '#/definitions/peer_entry' + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: "#/definitions/peer_entry" + '200': + description: PeerEntry replaced + schema: + $ref: "#/definitions/peer_entry" + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a peer_entry + description: Deletes a peer entry configuration by it's name in the specified peer section. + operationId: deletePeerEntry + tags: + - PeerEntry + parameters: + - name: name + in: path + description: PeerEntry name + required: true + type: string + - name: peer_section + in: query + description: Parent peers name + required: true + type: string + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + '204': + description: PeerEntry deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +binds: + get: + summary: Return an array of binds + description: Returns an array of all binds that are configured in specified frontend. + operationId: getBinds + tags: + - Bind + parameters: + - name: frontend + in: query + description: Parent frontend name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + type: object + required: + - data + properties: + data: + $ref: "#/definitions/binds" + _version: + type: integer + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a new bind + description: Adds a new bind in the specified frontend in the configuration file. + operationId: createBind + tags: + - Bind + parameters: + - name: frontend + in: query + description: Parent frontend name + required: true + type: string + - name: data + in: body + required: true + schema: + $ref: '#/definitions/bind' + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: "#/definitions/bind" + '201': + description: Bind created + schema: + $ref: "#/definitions/bind" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +binds_one: + get: + summary: Return one bind + description: Returns one bind configuration by it's name in the specified frontend. + operationId: getBind + tags: + - Bind + parameters: + - name: name + in: path + description: Bind name + required: true + type: string + - name: frontend + in: query + description: Parent frontend name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/bind" + _version: + type: integer + '404': + $ref: '#/responses/AlreadyExists' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace a bind + description: Replaces a bind configuration by it's name in the specified frontend. + operationId: replaceBind + tags: + - Bind parameters: - name: name in: path - description: Backend name + description: Bind name + required: true + type: string + - name: frontend + in: query + description: Parent frontend name required: true type: string + - name: data + in: body + required: true + schema: + $ref: '#/definitions/bind' - $ref: "#/parameters/transaction_id" - $ref: "#/parameters/version" - $ref: "#/parameters/force_reload" @@ -446,28 +891,60 @@ backends_one: Reload-ID: description: ID of the requested reload type: string - '204': - description: Backend deleted + schema: + $ref: "#/definitions/bind" + '200': + description: Bind replaced + schema: + $ref: "#/definitions/bind" + '400': + $ref: '#/responses/BadRequest' '404': $ref: '#/responses/NotFound' 'default': $ref: '#/responses/DefaultError' -binds: - get: - summary: Return an array of binds - description: Returns an array of all binds that are configured in specified frontend. - operationId: getBinds + delete: + summary: Delete a bind + description: Deletes a bind configuration by it's name in the specified frontend. + operationId: deleteBind tags: - Bind - - HAProxy configuration management - - Frontend options parameters: + - name: name + in: path + description: Bind name + required: true + type: string - name: frontend in: query description: Parent frontend name required: true type: string - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + '204': + description: Bind deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +resolvers: + get: + summary: Return an array of resolvers + description: Returns an array of all configured resolvers. + operationId: getResolvers + parameters: + - $ref: "#/parameters/transaction_id" + tags: + - Resolver responses: '200': description: Successful operation @@ -482,33 +959,198 @@ binds: - data properties: data: - $ref: "#/definitions/binds" + $ref: "#/definitions/resolvers" _version: type: integer 'default': $ref: '#/responses/DefaultError' post: - summary: Add a new bind - description: Adds a new bind in the specified frontend in the configuration file. - operationId: createBind + summary: Add a resolver + description: Adds a new resolver section to the configuration file. + operationId: createResolver + parameters: + - name: data + required: true + in: body + schema: + $ref: "#/definitions/resolver" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" tags: - - Bind - - HAProxy configuration management - - Frontend options + - Resolver + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: "#/definitions/resolver" + '201': + description: Resolver created + schema: + $ref: "#/definitions/resolver" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +resolvers_one: + get: + summary: Return a resolver + description: Returns one resolver section configuration by it's name. + operationId: getResolver + tags: + - Resolver parameters: - - name: frontend - in: query - description: Parent frontend name + - name: name + in: path + description: Resolver name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/resolver" + _version: + type: integer + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace a resolver + description: Replaces a resolver configuration by it's name. + operationId: replaceResolver + tags: + - Resolver + parameters: + - name: name + in: path + description: Resolver name required: true type: string - name: data + required: true in: body + schema: + $ref: "#/definitions/resolver" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: "#/definitions/resolver" + '200': + description: Resolver replaced + schema: + $ref: "#/definitions/resolver" + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a resolver + description: Deletes a resolver from the configuration by it's name. + operationId: deleteResolver + tags: + - Resolver + parameters: + - name: name + in: path + description: Resolver name + required: true + type: string + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + '204': + description: Resolver deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +nameservers: + get: + summary: Return an array of nameservers + description: Returns an array of all configured nameservers. + operationId: getNameservers + parameters: + - name: resolver + in: query + description: Parent resolver name required: true + type: string + - $ref: "#/parameters/transaction_id" + tags: + - Nameserver + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Configuration file version + type: integer + x-nullable: false schema: - $ref: '#/definitions/bind' + type: object + required: + - data + properties: + data: + $ref: "#/definitions/nameservers" + _version: + type: integer + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a nameserver + description: Adds a new nameserver to the resolvers section. + operationId: createNameserver + parameters: + - name: resolver + in: query + description: Parent resolver name + required: true + type: string + - name: data + required: true + in: body + schema: + $ref: "#/definitions/nameserver" - $ref: "#/parameters/transaction_id" - $ref: "#/parameters/version" - $ref: "#/parameters/force_reload" + tags: + - Nameserver responses: '202': description: Configuration change accepted and reload requested @@ -517,35 +1159,33 @@ binds: description: ID of the requested reload type: string schema: - $ref: "#/definitions/bind" + $ref: "#/definitions/nameserver" '201': - description: Bind created + description: Nameserver created schema: - $ref: "#/definitions/bind" + $ref: "#/definitions/nameserver" '409': $ref: '#/responses/AlreadyExists' '400': $ref: '#/responses/BadRequest' 'default': $ref: '#/responses/DefaultError' -binds_one: +nameservers_one: get: - summary: Return one bind - description: Returns one bind configuration by it's name in the specified frontend. - operationId: getBind + summary: Return a nameserver + description: Returns one nameserver configuration by it's name. + operationId: getNameserver tags: - - Bind - - HAProxy configuration management - - Frontend options + - Nameserver parameters: - name: name in: path - description: Bind name + description: Nameserver name required: true type: string - - name: frontend + - name: resolver in: query - description: Parent frontend name + description: Parent resolver name required: true type: string - $ref: "#/parameters/transaction_id" @@ -561,37 +1201,35 @@ binds_one: type: object properties: data: - $ref: "#/definitions/bind" + $ref: "#/definitions/nameserver" _version: type: integer '404': - $ref: '#/responses/AlreadyExists' + $ref: '#/responses/NotFound' 'default': $ref: '#/responses/DefaultError' put: - summary: Replace a bind - description: Replaces a bind configuration by it's name in the specified frontend. - operationId: replaceBind + summary: Replace a nameserver + description: Replaces a nameserver configuration by it's name. + operationId: replaceNameserver tags: - - Bind - - HAProxy configuration management - - Frontend options + - Nameserver parameters: - name: name in: path - description: Bind name + description: Nameserver name required: true type: string - - name: frontend + - name: resolver in: query - description: Parent frontend name + description: Parent resolver name required: true type: string - name: data - in: body required: true + in: body schema: - $ref: '#/definitions/bind' + $ref: "#/definitions/nameserver" - $ref: "#/parameters/transaction_id" - $ref: "#/parameters/version" - $ref: "#/parameters/force_reload" @@ -603,11 +1241,11 @@ binds_one: description: ID of the requested reload type: string schema: - $ref: "#/definitions/bind" + $ref: "#/definitions/nameserver" '200': - description: Bind replaced + description: Nameserver replaced schema: - $ref: "#/definitions/bind" + $ref: "#/definitions/nameserver" '400': $ref: '#/responses/BadRequest' '404': @@ -615,22 +1253,20 @@ binds_one: 'default': $ref: '#/responses/DefaultError' delete: - summary: Delete a bind - description: Deletes a bind configuration by it's name in the specified frontend. - operationId: deleteBind + summary: Delete a nameserver + description: Deletes a nameserver from the resolvers section by it's name. + operationId: deleteNameserver tags: - - Bind - - HAProxy configuration management - - Frontend options + - Nameserver parameters: - name: name in: path - description: Bind name + description: Nameserver name required: true type: string - - name: frontend + - name: resolver in: query - description: Parent frontend name + description: Parent resolver name required: true type: string - $ref: "#/parameters/transaction_id" @@ -644,7 +1280,7 @@ binds_one: description: ID of the requested reload type: string '204': - description: Bind deleted + description: Nameserver deleted '404': $ref: '#/responses/NotFound' 'default': @@ -656,8 +1292,6 @@ servers: operationId: getServers tags: - Server - - HAProxy configuration management - - Backend options parameters: - name: backend in: query @@ -690,8 +1324,6 @@ servers: operationId: createServer tags: - Server - - HAProxy configuration management - - Backend options parameters: - name: backend in: query @@ -732,8 +1364,6 @@ servers_one: operationId: getServer tags: - Server - - HAProxy configuration management - - Backend options parameters: - name: name in: path @@ -771,8 +1401,6 @@ servers_one: operationId: replaceServer tags: - Server - - HAProxy configuration management - - Backend options parameters: - name: name in: path @@ -817,8 +1445,6 @@ servers_one: operationId: deleteServer tags: - Server - - HAProxy configuration management - - Backend options parameters: - name: name in: path @@ -852,9 +1478,6 @@ tcp_response_rules: description: Returns all TCP Response Rules that are configured in specified backend. operationId: getTCPResponseRules tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPResponseRule parameters: - name: backend @@ -887,9 +1510,6 @@ tcp_response_rules: description: Adds a new TCP Response Rule of the specified type in the specified backend. operationId: createTCPResponseRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPResponseRule parameters: - name: backend @@ -927,17 +1547,14 @@ tcp_response_rules: tcp_response_rules_one: get: summary: Return one TCP Response Rule - description: Returns one TCP Response Rule configuration by it's ID in the specified backend. + description: Returns one TCP Response Rule configuration by it's index in the specified backend. operationId: getTCPResponseRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPResponseRule parameters: - - name: id + - name: index in: path - description: TCP Response Rule ID + description: TCP Response Rule Index required: true type: integer - name: backend @@ -967,17 +1584,14 @@ tcp_response_rules_one: $ref: '#/responses/DefaultError' put: summary: Replace a TCP Response Rule - description: Replaces a TCP Response Rule configuration by it's ID in the specified backend. + description: Replaces a TCP Response Rule configuration by it's Index in the specified backend. operationId: replaceTCPResponseRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPResponseRule parameters: - - name: id + - name: index in: path - description: TCP Response Rule ID + description: TCP Response Rule Index required: true type: integer - name: backend @@ -1014,17 +1628,14 @@ tcp_response_rules_one: $ref: '#/responses/DefaultError' delete: summary: Delete a TCP Response Rule - description: Deletes a TCP Response Rule configuration by it's ID from the specified backend. + description: Deletes a TCP Response Rule configuration by it's index from the specified backend. operationId: deleteTCPResponseRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPResponseRule parameters: - - name: id + - name: index in: path - description: TCP Response Rule ID + description: TCP Response Rule Index required: true type: integer - name: backend @@ -1054,9 +1665,6 @@ tcp_request_rules: description: Returns all TCP Request Rules that are configured in specified parent and parent type. operationId: getTCPRequestRules tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPRequestRule parameters: - name: parent_name @@ -1095,9 +1703,6 @@ tcp_request_rules: description: Adds a new TCP Request Rule of the specified type in the specified parent. operationId: createTCPRequestRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPRequestRule parameters: - name: parent_name @@ -1141,17 +1746,14 @@ tcp_request_rules: tcp_request_rules_one: get: summary: Return one TCP Request Rule - description: Returns one TCP Request Rule configuration by it's ID in the specified parent. + description: Returns one TCP Request Rule configuration by it's index in the specified parent. operationId: getTCPRequestRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPRequestRule parameters: - - name: id + - name: index in: path - description: TCP Request Rule ID + description: TCP Request Rule Index required: true type: integer - name: parent_name @@ -1187,17 +1789,14 @@ tcp_request_rules_one: $ref: '#/responses/DefaultError' put: summary: Replace a TCP Request Rule - description: Replaces a TCP Request Rule configuration by it's ID in the specified parent. + description: Replaces a TCP Request Rule configuration by it's index in the specified parent. operationId: replaceTCPRequestRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPRequestRule parameters: - - name: id + - name: index in: path - description: TCP Request Rule ID + description: TCP Request Rule Index required: true type: integer - name: parent_name @@ -1240,17 +1839,14 @@ tcp_request_rules_one: $ref: '#/responses/DefaultError' delete: summary: Delete a TCP Request Rule - description: Deletes a TCP Request Rule configuration by it's ID from the specified parent. + description: Deletes a TCP Request Rule configuration by it's index from the specified parent. operationId: deleteTCPRequestRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - TCPRequestRule parameters: - - name: id + - name: index in: path - description: TCP Request Rule ID + description: TCP Request Rule Index required: true type: integer - name: parent_name @@ -1286,9 +1882,6 @@ http_request_rules: description: Returns all HTTP Request Rules that are configured in specified parent. operationId: getHTTPRequestRules tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPRequestRule parameters: - name: parent_name @@ -1327,9 +1920,6 @@ http_request_rules: description: Adds a new HTTP Request Rule of the specified type in the specified parent. operationId: createHTTPRequestRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPRequestRule parameters: - name: parent_name @@ -1373,17 +1963,14 @@ http_request_rules: http_request_rules_one: get: summary: Return one HTTP Request Rule - description: Returns one HTTP Request Rule configuration by it's ID in the specified parent. + description: Returns one HTTP Request Rule configuration by it's index in the specified parent. operationId: getHTTPRequestRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPRequestRule parameters: - - name: id + - name: index in: path - description: HTTP Request Rule ID + description: HTTP Request Rule Index required: true type: integer - name: parent_name @@ -1419,17 +2006,14 @@ http_request_rules_one: $ref: '#/responses/DefaultError' put: summary: Replace a HTTP Request Rule - description: Replaces a HTTP Request Rule configuration by it's ID in the specified parent. + description: Replaces a HTTP Request Rule configuration by it's index in the specified parent. operationId: replaceHTTPRequestRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPRequestRule parameters: - - name: id + - name: index in: path - description: HTTP Request Rule ID + description: HTTP Request Rule Index required: true type: integer - name: parent_name @@ -1472,17 +2056,14 @@ http_request_rules_one: $ref: '#/responses/DefaultError' delete: summary: Delete a HTTP Request Rule - description: Deletes a HTTP Request Rule configuration by it's ID from the specified parent. + description: Deletes a HTTP Request Rule configuration by it's index from the specified parent. operationId: deleteHTTPRequestRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPRequestRule parameters: - - name: id + - name: index in: path - description: HTTP Request Rule ID + description: HTTP Request Rule Index required: true type: integer - name: parent_name @@ -1518,9 +2099,6 @@ http_response_rules: description: Returns all HTTP Response Rules that are configured in specified parent. operationId: getHTTPResponseRules tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPResponseRule parameters: - name: parent_name @@ -1559,9 +2137,6 @@ http_response_rules: description: Adds a new HTTP Response Rule of the specified type in the specified parent. operationId: createHTTPResponseRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPResponseRule parameters: - name: parent_name @@ -1605,17 +2180,14 @@ http_response_rules: http_response_rules_one: get: summary: Return one HTTP Response Rule - description: Returns one HTTP Response Rule configuration by it's ID in the specified parent. + description: Returns one HTTP Response Rule configuration by it's index in the specified parent. operationId: getHTTPResponseRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPResponseRule parameters: - - name: id + - name: index in: path - description: HTTP Response Rule ID + description: HTTP Response Rule Index required: true type: integer - name: parent_name @@ -1651,17 +2223,14 @@ http_response_rules_one: $ref: '#/responses/DefaultError' put: summary: Replace a HTTP Response Rule - description: Replaces a HTTP Response Rule configuration by it's ID in the specified parent. + description: Replaces a HTTP Response Rule configuration by it's index in the specified parent. operationId: replaceHTTPResponseRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPResponseRule parameters: - - name: id + - name: index in: path - description: HTTP Response Rule ID + description: HTTP Response Rule Index required: true type: integer - name: parent_name @@ -1704,17 +2273,14 @@ http_response_rules_one: $ref: '#/responses/DefaultError' delete: summary: Delete a HTTP Response Rule - description: Deletes a HTTP Response Rule configuration by it's ID from the specified parent. + description: Deletes a HTTP Response Rule configuration by it's index from the specified parent. operationId: deleteHTTPResponseRule tags: - - HAProxy configuration management - - Backend options - - Frontend options - HTTPResponseRule parameters: - - name: id + - name: index in: path - description: HTTP Response Rule ID + description: HTTP Response Rule Index required: true type: integer - name: parent_name @@ -1750,8 +2316,6 @@ backend_switching_rules: description: Returns all Backend Switching Rules that are configured in specified frontend. operationId: getBackendSwitchingRules tags: - - HAProxy configuration management - - Frontend options - BackendSwitchingRule parameters: - name: frontend @@ -1784,8 +2348,6 @@ backend_switching_rules: description: Adds a new Backend Switching Rule of the specified type in the specified frontend. operationId: createBackendSwitchingRule tags: - - HAProxy configuration management - - Frontend options - BackendSwitchingRule parameters: - name: frontend @@ -1823,16 +2385,14 @@ backend_switching_rules: backend_switching_rules_one: get: summary: Return one Backend Switching Rule - description: Returns one Backend Switching Rule configuration by it's ID in the specified frontend. + description: Returns one Backend Switching Rule configuration by it's index in the specified frontend. operationId: getBackendSwitchingRule tags: - - HAProxy configuration management - - Frontend options - BackendSwitchingRule parameters: - - name: id + - name: index in: path - description: Switching Rule ID + description: Switching Rule Index required: true type: integer - name: frontend @@ -1862,16 +2422,14 @@ backend_switching_rules_one: $ref: '#/responses/DefaultError' put: summary: Replace a Backend Switching Rule - description: Replaces a Backend Switching Rule configuration by it's ID in the specified frontend. + description: Replaces a Backend Switching Rule configuration by it's index in the specified frontend. operationId: replaceBackendSwitchingRule tags: - - HAProxy configuration management - - Frontend options - BackendSwitchingRule parameters: - - name: id + - name: index in: path - description: Switching Rule ID + description: Switching Rule Index required: true type: integer - name: frontend @@ -1908,16 +2466,14 @@ backend_switching_rules_one: $ref: '#/responses/DefaultError' delete: summary: Delete a Backend Switching Rule - description: Deletes a Backend Switching Rule configuration by it's ID from the specified frontend. + description: Deletes a Backend Switching Rule configuration by it's index from the specified frontend. operationId: deleteBackendSwitchingRule tags: - - HAProxy configuration management - - Frontend options - BackendSwitchingRule parameters: - - name: id + - name: index in: path - description: Switching Rule ID + description: Switching Rule Index required: true type: integer - name: frontend @@ -1947,8 +2503,6 @@ server_switching_rules: description: Returns all Backend Switching Rules that are configured in specified backend. operationId: getServerSwitchingRules tags: - - HAProxy configuration management - - Backend options - ServerSwitchingRule parameters: - name: backend @@ -1981,8 +2535,6 @@ server_switching_rules: description: Adds a new Server Switching Rule of the specified type in the specified backend. operationId: createServerSwitchingRule tags: - - HAProxy configuration management - - Backend options - ServerSwitchingRule parameters: - name: backend @@ -2020,16 +2572,14 @@ server_switching_rules: server_switching_rules_one: get: summary: Return one Server Switching Rule - description: Returns one Server Switching Rule configuration by it's ID in the specified backend. + description: Returns one Server Switching Rule configuration by it's index in the specified backend. operationId: getServerSwitchingRule tags: - - HAProxy configuration management - - Backend options - ServerSwitchingRule parameters: - - name: id + - name: index in: path - description: Switching Rule ID + description: Switching Rule Index required: true type: integer - name: backend @@ -2059,16 +2609,14 @@ server_switching_rules_one: $ref: '#/responses/DefaultError' put: summary: Replace a Server Switching Rule - description: Replaces a Server Switching Rule configuration by it's ID in the specified backend. + description: Replaces a Server Switching Rule configuration by it's index in the specified backend. operationId: replaceServerSwitchingRule tags: - - HAProxy configuration management - - Backend options - ServerSwitchingRule parameters: - - name: id + - name: index in: path - description: Switching Rule ID + description: Switching Rule Index required: true type: integer - name: backend @@ -2105,16 +2653,14 @@ server_switching_rules_one: $ref: '#/responses/DefaultError' delete: summary: Delete a Server Switching Rule - description: Deletes a Server Switching Rule configuration by it's ID from the specified backend. + description: Deletes a Server Switching Rule configuration by it's index from the specified backend. operationId: deleteServerSwitchingRule tags: - - HAProxy configuration management - - Backend options - ServerSwitchingRule parameters: - - name: id + - name: index in: path - description: Switching Rule ID + description: Switching Rule Index required: true type: integer - name: backend @@ -2147,10 +2693,9 @@ configuration: - $ref: "#/parameters/transaction_id" - $ref: "#/parameters/version" produces: - - text/plain + - application/json tags: - Configuration - - HAProxy configuration management responses: '200': description: Operation successful @@ -2175,7 +2720,7 @@ configuration: description: Push a new haproxy configuration file in plain text operationId: postHAProxyConfiguration produces: - - text/plain + - application/json consumes: - text/plain parameters: @@ -2184,11 +2729,33 @@ configuration: required: true schema: type: string + - name: skip_version + in: query + description: If set, no version check will be done and the pushed config will be enforced + type: boolean + required: false + default: false + - name: skip_reload + in: query + description: If set, no reload will be initiated and runtime actions from X-Runtime-Actions will be applied + type: boolean + required: false + default: false + - name: only_validate + in: query + description: If set, only validates configuration, without applying it + type: boolean + required: false + default: false + - name: X-Runtime-Actions + in: header + description: List of Runtime API commands with parameters separated by ';' + type: string + required: false - $ref: "#/parameters/version" - $ref: "#/parameters/force_reload" tags: - Configuration - - HAProxy configuration management responses: '202': description: Configuration change accepted and reload requested @@ -2212,9 +2779,6 @@ filters: description: Returns all Filters that are configured in specified parent. operationId: getFilters tags: - - HAProxy configuration management - - Backend options - - Frontend options - Filter parameters: - name: parent_name @@ -2253,9 +2817,6 @@ filters: description: Adds a new Filter of the specified type in the specified parent. operationId: createFilter tags: - - HAProxy configuration management - - Backend options - - Frontend options - Filter parameters: - name: parent_name @@ -2299,17 +2860,14 @@ filters: filters_one: get: summary: Return one Filter - description: Returns one Filter configuration by it's ID in the specified parent. + description: Returns one Filter configuration by it's index in the specified parent. operationId: getFilter tags: - - HAProxy configuration management - - Backend options - - Frontend options - Filter parameters: - - name: id + - name: index in: path - description: Filter ID + description: Filter Index required: true type: integer - name: parent_name @@ -2345,17 +2903,14 @@ filters_one: $ref: '#/responses/DefaultError' put: summary: Replace a Filter - description: Replaces a Filter configuration by it's ID in the specified parent. + description: Replaces a Filter configuration by it's index in the specified parent. operationId: replaceFilter tags: - - HAProxy configuration management - - Backend options - - Frontend options - Filter parameters: - - name: id + - name: index in: path - description: Filter ID + description: Filter Index required: true type: integer - name: parent_name @@ -2398,17 +2953,14 @@ filters_one: $ref: '#/responses/DefaultError' delete: summary: Delete a Filter - description: Deletes a Filter configuration by it's ID from the specified parent. + description: Deletes a Filter configuration by it's index from the specified parent. operationId: deleteFilter tags: - - HAProxy configuration management - - Backend options - - Frontend options - Filter parameters: - - name: id + - name: index in: path - description: Filter ID + description: Filter Index required: true type: integer - name: parent_name @@ -2444,8 +2996,6 @@ stick_rules: description: Returns all Stick Rules that are configured in specified backend. operationId: getStickRules tags: - - HAProxy configuration management - - Backend options - StickRule parameters: - name: backend @@ -2478,8 +3028,6 @@ stick_rules: description: Adds a new Stick Rule of the specified type in the specified backend. operationId: createStickRule tags: - - HAProxy configuration management - - Backend options - StickRule parameters: - name: backend @@ -2516,17 +3064,15 @@ stick_rules: $ref: '#/responses/DefaultError' stick_rules_one: get: - summary: Return one Stick Rule - description: Returns one Stick Rule configuration by it's ID in the specified backend. + summary: Return one Stick Rule + description: Returns one Stick Rule configuration by it's index in the specified backend. operationId: getStickRule tags: - - HAProxy configuration management - - Backend options - StickRule parameters: - - name: id + - name: index in: path - description: Stick Rule ID + description: Stick Rule Index required: true type: integer - name: backend @@ -2556,16 +3102,14 @@ stick_rules_one: $ref: '#/responses/DefaultError' put: summary: Replace a Stick Rule - description: Replaces a Stick Rule configuration by it's ID in the specified backend. + description: Replaces a Stick Rule configuration by it's index in the specified backend. operationId: replaceStickRule tags: - - HAProxy configuration management - - Backend options - StickRule parameters: - - name: id + - name: index in: path - description: Stick Rule ID + description: Stick Rule Index required: true type: integer - name: backend @@ -2602,16 +3146,14 @@ stick_rules_one: $ref: '#/responses/DefaultError' delete: summary: Delete a Stick Rule - description: Deletes a Stick Rule configuration by it's ID from the specified backend. + description: Deletes a Stick Rule configuration by it's index from the specified backend. operationId: deleteStickRule tags: - - HAProxy configuration management - - Backend options - StickRule parameters: - - name: id + - name: index in: path - description: Stick Rule ID + description: Stick Rule Index required: true type: integer - name: backend @@ -2641,9 +3183,6 @@ log_targets: description: Returns all Log Targets that are configured in specified parent. operationId: getLogTargets tags: - - HAProxy configuration management - - Backend options - - Frontend options - LogTarget parameters: - name: parent_name @@ -2682,9 +3221,6 @@ log_targets: description: Adds a new Log Target of the specified type in the specified parent. operationId: createLogTarget tags: - - HAProxy configuration management - - Backend options - - Frontend options - LogTarget parameters: - name: parent_name @@ -2728,17 +3264,14 @@ log_targets: log_targets_one: get: summary: Return one Log Target - description: Returns one Log Target configuration by it's ID in the specified parent. + description: Returns one Log Target configuration by it's index in the specified parent. operationId: getLogTarget tags: - - HAProxy configuration management - - Backend options - - Frontend options - LogTarget parameters: - - name: id + - name: index in: path - description: Log Target ID + description: Log Target Index required: true type: integer - name: parent_name @@ -2774,17 +3307,14 @@ log_targets_one: $ref: '#/responses/DefaultError' put: summary: Replace a Log Target - description: Replaces a Log Target configuration by it's ID in the specified parent. + description: Replaces a Log Target configuration by it's index in the specified parent. operationId: replaceLogTarget tags: - - HAProxy configuration management - - Backend options - - Frontend options - LogTarget parameters: - - name: id + - name: index in: path - description: Log Target ID + description: Log Target Index required: true type: integer - name: parent_name @@ -2827,17 +3357,14 @@ log_targets_one: $ref: '#/responses/DefaultError' delete: summary: Delete a Log Target - description: Deletes a Log Target configuration by it's ID from the specified parent. + description: Deletes a Log Target configuration by it's index from the specified parent. operationId: deleteLogTarget tags: - - HAProxy configuration management - - Backend options - - Frontend options - LogTarget parameters: - - name: id + - name: index in: path - description: Log Target ID + description: Log Target Index required: true type: integer - name: parent_name @@ -2873,9 +3400,6 @@ acls: description: Returns all ACL lines that are configured in specified parent. operationId: getAcls tags: - - HAProxy configuration management - - Backend options - - Frontend options - ACL parameters: - name: parent_name @@ -2914,9 +3438,6 @@ acls: description: Adds a new ACL line of the specified type in the specified parent. operationId: createAcl tags: - - HAProxy configuration management - - Backend options - - Frontend options - ACL parameters: - name: parent_name @@ -2960,17 +3481,14 @@ acls: acls_one: get: summary: Return one ACL line - description: Returns one ACL line configuration by it's ID in the specified parent. + description: Returns one ACL line configuration by it's index in the specified parent. operationId: getAcl tags: - - HAProxy configuration management - - Backend options - - Frontend options - ACL parameters: - - name: id + - name: index in: path - description: ACL line ID + description: ACL line Index required: true type: integer - name: parent_name @@ -3006,17 +3524,14 @@ acls_one: $ref: '#/responses/DefaultError' put: summary: Replace a ACL line - description: Replaces a ACL line configuration by it's ID in the specified parent. + description: Replaces a ACL line configuration by it's index in the specified parent. operationId: replaceAcl tags: - - HAProxy configuration management - - Backend options - - Frontend options - ACL parameters: - - name: id + - name: index in: path - description: ACL line ID + description: ACL line Index required: true type: integer - name: parent_name @@ -3059,17 +3574,14 @@ acls_one: $ref: '#/responses/DefaultError' delete: summary: Delete a ACL line - description: Deletes a ACL line configuration by it's ID from the specified parent. + description: Deletes a ACL line configuration by it's index from the specified parent. operationId: deleteAcl tags: - - HAProxy configuration management - - Backend options - - Frontend options - ACL parameters: - - name: id + - name: index in: path - description: ACL line ID + description: ACL line Index required: true type: integer - name: parent_name @@ -3099,3 +3611,21 @@ acls_one: $ref: '#/responses/NotFound' 'default': $ref: '#/responses/DefaultError' +version: + get: + summary: Return a configuration version + description: Returns configuration version. + operationId: getConfigurationVersion + tags: + - Configuration + parameters: + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Configuration version + schema: + type: integer + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' diff --git a/paths/general.yaml b/paths/general.yaml index 0f8ee15..16fd64e 100644 --- a/paths/general.yaml +++ b/paths/general.yaml @@ -1,3 +1,4 @@ +--- root: get: tags: @@ -152,6 +153,18 @@ transactions: description: Transaction started schema: $ref: "#/definitions/transaction" + '429': + description: Too many open transactions + schema: + type: object + properties: + code: + type: integer + message: + type: string + example: + code: 429 + message: cannot start a new transaction, reached the maximum amount of 20 active transactions available 'default': $ref: '#/responses/DefaultError' transactions_one: @@ -243,6 +256,22 @@ specification: type: object 'default': $ref: '#/responses/DefaultError' +specification_openapiv3: + get: + tags: + - SpecificationOpenapiv3 + summary: Data Plane API v3 Specification + description: Return Data Plane API OpenAPI v3 specification + operationId: getOpenapiv3Specification + produces: + - application/json + responses: + '200': + description: Success + schema: + type: object + 'default': + $ref: '#/responses/DefaultError' reloads: get: tags: diff --git a/paths/runtime.yaml b/paths/runtime.yaml index 7745b81..f639e01 100644 --- a/paths/runtime.yaml +++ b/paths/runtime.yaml @@ -1,3 +1,4 @@ +--- process_info: get: tags: @@ -16,12 +17,11 @@ process_info: $ref: '#/responses/DefaultError' servers: get: - summary: Return an array of runtime servers' setings + summary: Return an array of runtime servers' settings description: Returns an array of all servers' runtime settings. operationId: getRuntimeServers tags: - Server - - Backend options parameters: - name: backend in: query @@ -42,7 +42,6 @@ servers_one: operationId: getRuntimeServer tags: - Server - - Backend options parameters: - name: name in: path @@ -69,7 +68,6 @@ servers_one: operationId: replaceRuntimeServer tags: - Server - - Backend options parameters: - name: name in: path @@ -184,3 +182,231 @@ stick_table_entries: $ref: "#/definitions/stick_table_entries" 'default': $ref: '#/responses/DefaultError' +maps: + get: # show map + summary: Return runtime map files + description: Returns runtime map files. + operationId: getAllRuntimeMapFiles + tags: + - Maps + parameters: + - name: include_unmanaged + in: query + description: If true, also show unmanaged map files loaded in haproxy + required: false + type: boolean + default: false + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/maps" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +maps_one: + get: # one map file + summary: Return one runtime map file + description: Returns one runtime map file. + operationId: getOneRuntimeMap + tags: + - Maps + parameters: + - name: name + in: path + description: Map file name + required: true + type: string + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/map" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: # clear map [map] + summary: Remove all map entries from the map file + description: Remove all map entries from the map file. + operationId: clearRuntimeMap + parameters: + - name: name + in: path + description: Map file name + required: true + type: string + - name: forceDelete + in: query + description: If true, deletes file from disk + type: boolean + - name: force_sync + in: query + description: If true, immediately syncs changes to disk + type: boolean + default: false + tags: + - Maps + responses: + '204': + description: All map entries deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +maps_entries: + get: # show map [map] + summary: Return one map runtime entries + description: Returns an array of all entries in a given runtime map file. + operationId: showRuntimeMap + tags: + - Maps + parameters: + - name: map + in: query + description: Mapfile attribute storage_name + required: true + type: string + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/map_entries" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + post: # add map [map] key value + summary: Adds an entry into the map file + description: Adds an entry into the map file. + operationId: addMapEntry + parameters: + - name: map + in: query + description: Mapfile attribute storage_name + required: true + type: string + - name: force_sync + in: query + description: If true, immediately syncs changes to disk + type: boolean + default: false + - name: data + in: body + required: true + schema: + $ref: '#/definitions/map_entry' + tags: + - Maps + responses: + '201': + description: Map entry created + schema: + $ref: "#/definitions/map_entry" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +maps_entries_one: + get: # get map + summary: Return one map runtime setting + description: Returns one map runtime setting by it's id. + operationId: getRuntimeMapEntry + tags: + - Maps + parameters: + - name: id + in: path + description: Map id + required: true + type: string + - name: map + in: query + description: Mapfile attribute storage_name + required: true + type: string + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/map_entry" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: # set map [|#] + summary: Replace the value corresponding to each id in a map + description: Replaces the value corresponding to each id in a map. + operationId: replaceRuntimeMapEntry + tags: + - Maps + parameters: + - name: id + in: path + description: Map id + required: true + type: string + - name: map + in: query + description: Mapfile attribute storage_name + required: true + type: string + - name: force_sync + in: query + description: If true, immediately syncs changes to disk + type: boolean + default: false + - name: data + in: body + required: true + schema: + type: object + required: + - value + properties: + value: + description: Map value + type: string + responses: + '200': + description: Map value replaced + schema: + $ref: "#/definitions/map_entry" + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: # del map [|#] + summary: Deletes all the map entries from the map by its id + description: Delete all the map entries from the map by its id. + operationId: deleteRuntimeMapEntry + tags: + - Maps + parameters: + - name: id + in: path + description: Map id + required: true + type: string + - name: map + in: query + description: Mapfile attribute storage_name + required: true + type: string + - name: force_sync + in: query + description: If true, immediately syncs changes to disk + type: boolean + default: false + responses: + '204': + description: Map key/value deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' diff --git a/paths/service-discovery.yaml b/paths/service-discovery.yaml new file mode 100644 index 0000000..ea4a7ce --- /dev/null +++ b/paths/service-discovery.yaml @@ -0,0 +1,115 @@ +--- +consul: + get: + summary: Return an array of all configured Consul servers + description: Returns all configured Consul servers. + operationId: getConsuls + tags: + - ServiceDiscovery + responses: + '200': + description: Successful operation + schema: + type: object + required: + - data + properties: + data: + $ref: "#/definitions/consuls" + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a new Consul server + description: Adds a new Consul server. + operationId: createConsul + tags: + - ServiceDiscovery + parameters: + - name: data + in: body + required: true + schema: + $ref: '#/definitions/consul' + responses: + '201': + description: Consul created + schema: + $ref: '#/definitions/consul' + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +consul_one: + get: + summary: Return one Consul server + description: Returns one Consul server configuration by it's id. + operationId: getConsul + tags: + - ServiceDiscovery + parameters: + - name: id + in: path + description: Consul server id + required: true + type: string + responses: + '200': + description: Successful operation + schema: + type: object + properties: + data: + $ref: "#/definitions/consul" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace a Consul server + description: Replaces a Consul server configuration by it's id. + operationId: replaceConsul + tags: + - ServiceDiscovery + parameters: + - name: id + in: path + description: Consul Index + required: true + type: string + - name: data + in: body + required: true + schema: + $ref: '#/definitions/consul' + responses: + '200': + description: Consul server replaced + schema: + $ref: '#/definitions/consul' + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a Consul server + description: Deletes a Consul server configuration by it's id. + operationId: deleteConsul + tags: + - ServiceDiscovery + parameters: + - name: id + in: path + description: Consul server Index + required: true + type: string + responses: + '204': + description: Consul server deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' diff --git a/paths/simple.yaml b/paths/simple.yaml index ef96eca..3074581 100644 --- a/paths/simple.yaml +++ b/paths/simple.yaml @@ -1,3 +1,4 @@ +--- sites: get: summary: Return an array of sites @@ -73,7 +74,7 @@ sites_one: description: Site frontend name required: true type: string - - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/transaction_id" responses: '200': description: Successful operation diff --git a/paths/spoe-transactions.yaml b/paths/spoe-transactions.yaml new file mode 100644 index 0000000..657fed9 --- /dev/null +++ b/paths/spoe-transactions.yaml @@ -0,0 +1,155 @@ +--- +transactions: + get: + tags: + - SpoeTransactions + summary: Return list of SPOE configuration transactions. + description: Returns a list of SPOE configuration transactions. Transactions can be filtered by their status. + operationId: getSpoeTransactions + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: status + in: query + description: Filter by transaction status + required: false + type: string + enum: [failed, in_progress] + produces: + - application/json + responses: + '200': + description: Success + schema: + $ref: '#/definitions/spoe_transactions' + 'default': + $ref: '#/responses/DefaultError' + post: + tags: + - SpoeTransactions + summary: Start a new transaction + description: Starts a new transaction and returns it's id + operationId: startSpoeTransaction + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: version + in: query + description: Configuration version on which to work on + required: true + type: integer + produces: + - application/json + responses: + '201': + description: Transaction started + schema: + $ref: "#/definitions/spoe_transaction" + '429': + description: Too many open transactions + schema: + type: object + properties: + code: + type: integer + message: + type: string + example: + code: 429 + message: cannot start a new transaction, reached the maximum amount of 20 active transactions available + 'default': + $ref: '#/responses/DefaultError' +transactions_one: + get: + tags: + - SpoeTransactions + summary: Return one SPOE configuration transactions + description: Returns one SPOE configuration transactions. + operationId: getSpoeTransaction + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: id + in: path + description: Transaction id + required: true + type: string + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/spoe_transaction" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: + tags: + - SpoeTransactions + summary: Commit transaction + description: Commit transaction, execute all operations in transaction and return msg + operationId: commitSpoeTransaction + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: id + in: path + description: Transaction id + required: true + type: string + - $ref: "#/parameters/force_reload" + responses: + '202': + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + schema: + $ref: "#/definitions/spoe_transaction" + '200': + description: Transaction succesfully commited + schema: + $ref: "#/definitions/spoe_transaction" + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a transaction + description: Deletes a transaction. + operationId: deleteSpoeTransaction + tags: + - SpoeTransactions + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: id + in: path + description: Transaction id + required: true + type: string + responses: + '204': + description: Transaction deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' diff --git a/paths/spoe.yaml b/paths/spoe.yaml new file mode 100644 index 0000000..732b5a7 --- /dev/null +++ b/paths/spoe.yaml @@ -0,0 +1,811 @@ +spoe_files: + get: + summary: Return all available SPOE files + description: Returns all available SPOE files. + operationId: getAllSpoeFiles + tags: + - Spoe + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/spoe_files" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Creates SPOE file with its entries + description: Creates SPOE file with its entries. + operationId: createSpoe + consumes: + - multipart/form-data + parameters: + - in: formData + name: file_upload + type: file + description: The spoe file to upload + x-mimetype: text/plain + tags: + - Spoe + responses: + '201': + description: SPOE file created with its entries + schema: + type: string + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +spoes_one: + get: + summary: Return one SPOE file + description: Returns one SPOE file. + operationId: getOneSpoeFile + tags: + - Spoe + parameters: + - name: name + in: path + description: SPOE file name + required: true + type: string + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + type: string + _version: + type: integer + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete SPOE file + description: Deletes SPOE file. + operationId: deleteSpoeFile + parameters: + - name: name + in: path + description: SPOE file name + required: true + type: string + tags: + - Spoe + responses: + '204': + description: SPOE file deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +spoe_scopes: + get: + summary: Return an array of spoe scopes + description: Returns an array of all configured spoe scopes. + operationId: getSpoeScopes + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - $ref: "#/parameters/transaction_id" + tags: + - Spoe + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/spoe_scopes" + _version: + type: integer + required: + - data + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a new spoe scope + description: Adds a new spoe scope. + operationId: createSpoeScope + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: data + required: true + in: body + schema: + $ref: "#/definitions/spoe_scope" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + tags: + - Spoe + responses: + '201': + description: Spoe scope created + schema: + $ref: "#/definitions/spoe_scope" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +spoe_scopes_one: + get: + summary: Return one SPOE scope + description: Returns one SPOE scope in one SPOE file. + operationId: getSpoeScope + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: name + in: path + description: Spoe scope + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/spoe_scope" + _version: + type: integer + required: + - data + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a SPOE scope + description: Deletes a SPOE scope from the configuration file. + operationId: deleteSpoeScope + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: name + in: path + description: Spoe scope name + required: true + type: string + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + responses: + '204': + description: Spoe scope deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +spoe_agents: + get: + summary: Return an array of spoe agents in one scope + description: Returns an array of all configured spoe agents in one scope. + operationId: getSpoeAgents + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - $ref: "#/parameters/transaction_id" + tags: + - Spoe + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/spoe_agents" + _version: + type: integer + required: + - data + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a new spoe agent to scope + description: Adds a new spoe agent to the spoe scope. + operationId: createSpoeAgent + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: data + required: true + in: body + schema: + $ref: "#/definitions/spoe_agent" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + tags: + - Spoe + responses: + '201': + description: Spoe agent created + schema: + $ref: "#/definitions/spoe_agent" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +spoe_agents_one: + get: + summary: Return a spoe agent + description: Returns one spoe agent configuration in one SPOE scope. + operationId: getSpoeAgent + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe agent name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/spoe_agent" + _version: + type: integer + required: + - data + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace a SPOE agent + description: Replaces a SPOE agent configuration in one SPOE scope. + operationId: replaceSpoeAgent + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe agent name + required: true + type: string + - name: data + required: true + in: body + schema: + $ref: "#/definitions/spoe_agent" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + responses: + '200': + description: Spoe agent replaced + schema: + $ref: "#/definitions/spoe_agent" + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a SPOE agent + description: Deletes a SPOE agent from the configuration in one SPOE scope. + operationId: deleteSpoeAgent + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe agent name + required: true + type: string + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + responses: + '204': + description: Spoe agent deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +spoe_messages: + get: + summary: Return an array of spoe messages in one scope + description: Returns an array of all configured spoe messages in one scope. + operationId: getSpoeMessages + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - $ref: "#/parameters/transaction_id" + tags: + - Spoe + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/spoe_messages" + _version: + type: integer + required: + - data + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a new spoe message to scope + description: Adds a new spoe message to the spoe scope. + operationId: createSpoeMessage + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: data + required: true + in: body + schema: + $ref: "#/definitions/spoe_message" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + tags: + - Spoe + responses: + '201': + description: Spoe message created + schema: + $ref: "#/definitions/spoe_message" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +spoe_messages_one: + get: + summary: Return a spoe message + description: Returns one spoe message configuration in SPOE scope. + operationId: getSpoeMessage + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe message name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/spoe_message" + _version: + type: integer + required: + - data + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace a spoe message + description: Replaces a spoe message configuration in one SPOE scope. + operationId: replaceSpoeMessage + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe message name + required: true + type: string + - name: data + required: true + in: body + schema: + $ref: "#/definitions/spoe_message" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + responses: + '200': + description: Spoe message replaced + schema: + $ref: "#/definitions/spoe_message" + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a spoe message + description: Deletes a spoe message from the SPOE scope. + operationId: deleteSpoeMessage + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe message name + required: true + type: string + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + responses: + '204': + description: Spoe message deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +spoe_groups: + get: + summary: Return an array of SPOE groups + description: Returns an array of all configured SPOE groups in one SPOE scope. + operationId: getSpoeGroups + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - $ref: "#/parameters/transaction_id" + tags: + - Spoe + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/spoe_groups" + _version: + type: integer + required: + - data + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Add a new SPOE groups + description: Adds a new SPOE groups to the SPOE scope. + operationId: createSpoeGroup + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: data + required: true + in: body + schema: + $ref: "#/definitions/spoe_group" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + tags: + - Spoe + responses: + '201': + description: Spoe groups created + schema: + $ref: "#/definitions/spoe_group" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +spoe_groups_one: + get: + summary: Return a SPOE groups + description: Returns one SPOE groups configuration in one SPOE scope. + operationId: getSpoeGroup + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe group name + required: true + type: string + - $ref: "#/parameters/transaction_id" + responses: + '200': + description: Successful operation + headers: + Configuration-Version: + description: Spoe configuration file version + type: integer + x-nullable: false + schema: + type: object + properties: + data: + $ref: "#/definitions/spoe_group" + _version: + type: integer + required: + - data + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace a SPOE groups + description: Replaces a SPOE groups configuration in one SPOE scope. + operationId: replaceSpoeGroup + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe group name + required: true + type: string + - name: data + required: true + in: body + schema: + $ref: "#/definitions/spoe_group" + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + responses: + '200': + description: Spoe groups replaced + schema: + $ref: "#/definitions/spoe_group" + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete a SPOE groups + description: Deletes a SPOE groups from the one SPOE scope. + operationId: deleteSpoeGroup + tags: + - Spoe + parameters: + - name: spoe + in: query + description: Spoe file name + required: true + type: string + - name: scope + in: query + description: Spoe scope + required: true + type: string + - name: name + in: path + description: Spoe group name + required: true + type: string + - $ref: "#/parameters/transaction_id" + - $ref: "#/parameters/version" + responses: + '204': + description: Spoe group deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +version: + get: + summary: Return a SPOE configuration version + description: Returns SPOE configuration version. + operationId: getSpoeConfigurationVersion + tags: + - Spoe + parameters: + - $ref: "#/parameters/transaction_id" + - name: spoe + in: query + description: Spoe file name + required: true + type: string + responses: + '200': + description: SPOE configuration version + schema: + type: integer + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' diff --git a/paths/stats.yaml b/paths/stats.yaml index 29d9d6c..3fc7899 100644 --- a/paths/stats.yaml +++ b/paths/stats.yaml @@ -1,3 +1,4 @@ +--- native: get: summary: Gets stats diff --git a/paths/storage.yaml b/paths/storage.yaml new file mode 100644 index 0000000..339c84f --- /dev/null +++ b/paths/storage.yaml @@ -0,0 +1,238 @@ +--- +maps: + get: + summary: Return a list of all managed map files + description: Returns a list of all managed map files + operationId: getAllStorageMapFiles + tags: + - Storage + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/maps" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + post: # (raw) + summary: Creates a managed runtime map file with its entries + description: Creates a managed runtime map file with its entries. + operationId: createRuntimeMap + consumes: + - multipart/form-data + parameters: + - in: formData + name: file_upload + type: file + description: The map file contents + x-mimetype: text/plain + tags: + - Storage + responses: + '201': + description: Map file created with its entries + schema: + $ref: "#/definitions/map" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +maps_one: + get: + summary: Return the contents of one managed map file from disk + description: Returns the contents of one managed map file from disk + operationId: getOneStorageMap + tags: + - Storage + parameters: + - name: name + in: path + description: Map file storage_name + required: true + type: string + produces: + - application/octet-stream + responses: + '200': + description: Successful operation + schema: + type: file + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Deletes a managed map file from disk + description: Deletes a managed map file from disk. + operationId: deleteStorageMap + tags: + - Storage + parameters: + - name: name + in: path + description: Map file storage_name + required: true + type: string + responses: + '204': + description: Map file deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace contents of a managed map file on disk + description: Replaces the contents of a managed map file on disk + operationId: replaceStorageMapFile + produces: + - application/json + consumes: + - text/plain + tags: + - Storage + parameters: + - name: name + in: path + description: Map file storage_name + required: true + type: string + - name: data + in: body + required: true + schema: + type: string + - $ref: "#/parameters/force_reload" + responses: + "202": + description: Configuration change accepted and reload requested + headers: + Reload-ID: + description: ID of the requested reload + type: string + '204': + description: Map file replaced + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' +ssl_certificates: + get: + summary: Return all available SSL certificates on disk + description: Returns all available SSL certificates on disk. + operationId: getAllStorageSSLCertificates + tags: + - Storage + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/ssl_certificates" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + post: + summary: Create SSL certificate + description: Creates SSL certificate. + operationId: createStorageSSLCertificate + consumes: + - multipart/form-data + parameters: + - in: formData + name: file_upload + type: file + description: The SSL certificate to upload + x-mimetype: text/plain + - $ref: "#/parameters/force_reload" + tags: + - Storage + responses: + '201': + description: SSL certificate created + schema: + $ref: "#/definitions/ssl_certificate" + '409': + $ref: '#/responses/AlreadyExists' + '400': + $ref: '#/responses/BadRequest' + 'default': + $ref: '#/responses/DefaultError' +ssl_certificates_one: + get: + summary: Return one SSL certificate from disk + description: Returns one SSL certificate from disk. + operationId: getOneStorageSSLCertificate + tags: + - Storage + parameters: + - name: name + in: path + description: SSL certificate name + required: true + type: string + responses: + '200': + description: Successful operation + schema: + $ref: "#/definitions/ssl_certificate" + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + delete: + summary: Delete SSL certificate from disk + description: Deletes SSL certificate from disk. + operationId: deleteStorageSSLCertificate + tags: + - Storage + parameters: + - name: name + in: path + description: SSL certificate name + required: true + type: string + responses: + '204': + description: SSL certificate deleted + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' + put: + summary: Replace SSL certificates on disk + description: Replaces SSL certificate on disk. + operationId: replaceStorageSSLCertificate + produces: + - application/json + consumes: + - text/plain + tags: + - Storage + parameters: + - name: name + in: path + description: SSL certificate name + required: true + type: string + - name: data + in: body + required: true + schema: + type: string + - $ref: "#/parameters/force_reload" + responses: + '202': + description: SSL certificate replaced + schema: + $ref: "#/definitions/ssl_certificate" + '400': + $ref: '#/responses/BadRequest' + '404': + $ref: '#/responses/NotFound' + 'default': + $ref: '#/responses/DefaultError' diff --git a/scripts/lint-yaml.sh b/scripts/lint-yaml.sh new file mode 100755 index 0000000..c6acc96 --- /dev/null +++ b/scripts/lint-yaml.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +# - Ensure single `tags` are used(openapi-generator doesn't work well with multiple tags) +# - Ensure Pascal case is used for `name` field + +set -e pipefail + +haproxy_spec="./build/haproxy_spec.yaml" +found="false" +countTags=0 +lineNo=0 + +# checkCamelCaseInNameField checks if usage of camel case name is supported +# and if not, it exit with error code 1 +checkCamelCaseInNameField() +{ + local name="$(echo $@ | grep '^name: ')" + if [ -n "$name" ]; then + local upperCased="$(echo "$name" | cut -d ":" -f 2 | grep -e '[[:upper:]]')" + + if [ -n "$upperCased" ]; then + # Add camel case names we want to support + local allowedCamelCaseNameFields=" HAProxy Support X-Runtime-Actions forceDelete" + + local allowed="$(echo "$allowedCamelCaseNameFields" | grep "$upperCased")" + if [ -z "$allowed" ] ; then + echo "Camel case \"$trimLine\" used at line no: $lineNo. Use Pascal case instead." + exit 1 + fi + fi + fi +} + +while IFS= read -r line +do + lineNo=$((lineNo+1)) + # skip root tags + if [ "$line" = "tags:" ]; then + continue + fi + + trimLine="${line#"${line%%[![:space:]]*}"}" + + # ensure camel case is not used in name fields + checkCamelCaseInNameField $trimLine + + if [ "$found" = "true" ] && [ -n "$trimLine" ] && [ -z "$(echo "$trimLine" | cut -d "-" -f 1)" ]; then + countTags=$((countTags+1)) + else + found="false" + countTags=0 + fi + + if [ "$countTags" -gt 1 ]; then + echo "Multiple tags are not supported. Additional tag: $line at line no: $lineNo" + exit 1 + fi + + # handle only tags from path + if [ "$trimLine" = "tags:" ]; then + found="true" + fi +done < "$haproxy_spec" + +echo "Linting YAML PASSED" +exit 0