1{ lib, ... }:
2{ options = {
3 server = lib.mkOption {
4 type =
5 lib.types.either
6 (lib.types.submodule (import ./server-options.nix))
7 (lib.types.path);
8 example = {
9 host = "127.0.0.1";
10 port = 8888;
11 };
12 default = {
13 host = "127.0.0.1";
14 port = 80;
15 };
16 description = lib.mdDoc ''
17 Backend server location specified as either a host:port pair
18 or a unix domain docket.
19 '';
20 };
21
22 patterns = lib.mkOption {
23 type = lib.types.listOf lib.types.str;
24 example = [
25 "*.host.net/v1/"
26 "host.org/v2/mypath"
27 "/somepath"
28 ];
29 default = [];
30 description = lib.mdDoc ''
31 List of nghttpx backend patterns.
32
33 Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-b
34 for more information on the pattern syntax and nghttpxs behavior.
35 '';
36 };
37
38 params = lib.mkOption {
39 type = lib.types.nullOr (lib.types.submodule (import ./backend-params-submodule.nix));
40 example = {
41 proto = "h2";
42 tls = true;
43 };
44 default = null;
45 description = lib.mdDoc ''
46 Parameters to configure a backend.
47 '';
48 };
49 };
50}