Merge remote-tracking branch 'origin/master' into erp5-cluster
[slapos.git] / software / erp5 / instance-erp5-input-schema.json
1 {
2   "$schema": "http://json-schema.org/draft-04/schema#",
3   "extends": "./schema-definitions.json#",
4   "description": "Parameters to instantiate ERP5",
5   "additionalProperties": false,
6   "properties": {
7     "site-id": {
8       "description": "ERP5Site object's id",
9       "default": "erp5",
10       "type": "string"
11     },
12     "timezone": {
13       "description": "Main site's timezone",
14       "default": "UTC",
15       "type": "string"
16     },
17     "deadlock-debugger-password": {
18       "description": "Password for /manage_debug_threads",
19       "default": "random",
20       "type": "string"
21     },
22     "inituser-login": {
23       "description": "Login of the initial/rescue user",
24       "default": "zope",
25       "type": "string"
26     },
27     "inituser-password": {
28       "description": "Password of the initial/rescue user",
29       "default": "random",
30       "type": "string"
31     },
32     "developer-list": {
33       "description": "List of logins which should get the Developper role (required to modify portal_components' content)",
34       "default": "inituser-login's value",
35       "items": {
36         "pattern": "/^\S+$/",
37         "type": "string"
38       },
39       "uniqueItems": true,
40       "type": "array"
41     },
42     "frontend": {
43       "description": "Front-end slave instance request parameters",
44       "properties": {
45         "software-url": {
46           "description": "Front-end's software type. If this parameter is the empty string, no front-end instance is requested.",
47           "default": "",
48           "type": "string"
49         },
50         "domain": {
51           "description": "The domain name to request front-end to respond as.",
52           "default": "",
53           "type": "string"
54         },
55         "software-type": {
56           "description": "Request a front-end slave instance of this software type.",
57           "default": "RootSoftwareInstance",
58           "type": ""
59         },
60         "instance-guid": {
61           "description": "GUID of computer instance must be requested on. Mandatory if software-url is a non-empty string.",
62           "type": "string"
63         }
64       },
65       "type": "object"
66     },
67     "zope-partition-dict": {
68       "description": "Zope layout definition",
69       "patternProperties": {
70         ".*": {
71           "additionalProperties": false,
72           "properties": {
73             "family": {
74               "description": "The family this partition is part of. For example: 'public', 'admin', 'backoffice', 'web-service'... Each family gets its own balancer entry. It has no special meaning for the system.",
75               "default": "default",
76               "type": "string"
77             },
78             "instance-count": {
79               "description": "Number of Zopes to setup on this partition",
80               "default": 1,
81               "type": "integer"
82             },
83             "thread-amount": {
84               "description": "Number of worker threads for each created Zope process",
85               "default": 1,
86               "type": "integer"
87             },
88             "timerserver-interval": {
89               "description": "Timerserver tick perdiod, in seconds, or 0 to disable",
90               "default": 5,
91               "type": "integer"
92             },
93             "webdav": {
94               "description": "Serve webdav queries, implies timerserver-interval=0 (disabled). Mixing webdav and non-webdav nodes in a single family will give unspecified results.",
95               "default": false,
96               "type": "boolean"
97             },
98             "longrequest-logger-interval": {
99               "description": "Period, in seconds, with which LongRequestLogger polls worker thread stack traces, or -1 to disable",
100               "default": -1,
101               "type": "integer"
102             },
103             "longrequest-logger-timeout": {
104               "description": "Transaction duration after which LongRequestLogger will start logging its stack trace, in seconds",
105               "default": 1,
106               "type": "integer"
107             },
108             "port-base": {
109               "allOf": [{
110                 "$ref": "#/definitions/tcpv4port"
111               }, {
112                 "description": "Start allocating ports at this value. Useful if one needs to make several partitions share the same port range (ie, several partitions bound to a single address)",
113                 "default": 2200
114               }]
115             },
116             "computer-guid": {
117               "description": "GUID of computer instance must be requested on",
118               "type": "string"
119             }
120           },
121           "type": "object"
122         }
123       },
124       "type": "object"
125     },
126     "kumofs-computer-guid": {
127       "description": "GUID of computer instance must be requested on",
128       "type": "string"
129     },
130     "kumofs": {
131       "description": "Persistent memcached service",
132       "additionalProperties": {
133         "$ref": "./instance-kumofs-input-schema.json#properties"
134       },
135       "type": "object"
136     },
137     "memcached-computer-guid": {
138       "description": "GUID of computer instance must be requested on",
139       "type": "string"
140     },
141     "memcached": {
142       "description": "Volatile memcached service",
143       "additionalProperties": {
144         "$ref": "./instance-kumofs-input-schema.json#properties"
145       },
146       "type": "object"
147     },
148     "cloudooo-computer-guid": {
149       "description": "GUID of computer instance must be requested on",
150       "type": "string"
151     },
152     "cloudooo": {
153       "description": "Format conversion service",
154       "additionalProperties": {
155         "$ref": "./instance-cloudooo-input-schema.json#properties"
156       },
157       "type": "object"
158     },
159     "mariadb-computer-guid": {
160       "description": "GUID of computer instance must be requested on",
161       "type": "string"
162     },
163     "mariadb": {
164       "description": "Relational database service",
165       "additionalProperties": {
166         "$ref": "./instance-mariadb-input-schema.json#properties"
167       },
168       "type": "object"
169     },
170     "zodb-computer-guid": {
171       "description": "GUID of computer instance must be requested on",
172       "type": "string"
173     },
174     "zodb-software-type": {
175       "description": "Zope Object DataBase implementation",
176       "default": "zeo",
177       "enum": ["zeo", "neo"],
178       "type": "string"
179     },
180     "zodb": {
181       "description": "Zope Object DataBase service",
182       "oneOf": [
183         {"$ref": "./instance-neo-input-schema.json#properties"},
184         {"$ref": "./instance-zeo-input-schema.json#properties"}
185       ]
186     }
187   }
188 }