Merge branch 'erp5' 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             "longrequest-logger-interval": {
94               "description": "Period, in seconds, with which LongRequestLogger polls worker thread stack traces, or -1 to disable",
95               "default": -1,
96               "type": "integer"
97             },
98             "longrequest-logger-timeout": {
99               "description": "Transaction duration after which LongRequestLogger will start logging its stack trace, in seconds",
100               "default": 1,
101               "type": "integer"
102             },
103             "port-base": {
104               "allOf": [{
105                 "$ref": "#/definitions/tcpv4port"
106               }, {
107                 "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)",
108                 "default": 2200
109               }]
110             },
111             "computer-guid": {
112               "description": "GUID of computer instance must be requested on",
113               "type": "string"
114             }
115           },
116           "type": "object"
117         }
118       },
119       "type": "object"
120     },
121     "kumofs-computer-guid": {
122       "description": "GUID of computer instance must be requested on",
123       "type": "string"
124     },
125     "kumofs": {
126       "description": "Persistent memcached service",
127       "additionalProperties": {
128         "$ref": "./instance-kumofs-input-schema.json#properties"
129       },
130       "type": "object"
131     },
132     "memcached-computer-guid": {
133       "description": "GUID of computer instance must be requested on",
134       "type": "string"
135     },
136     "memcached": {
137       "description": "Volatile memcached service",
138       "additionalProperties": {
139         "$ref": "./instance-kumofs-input-schema.json#properties"
140       },
141       "type": "object"
142     },
143     "cloudooo-computer-guid": {
144       "description": "GUID of computer instance must be requested on",
145       "type": "string"
146     },
147     "cloudooo": {
148       "description": "Format conversion service",
149       "additionalProperties": {
150         "$ref": "./instance-cloudooo-input-schema.json#properties"
151       },
152       "type": "object"
153     },
154     "mariadb-computer-guid": {
155       "description": "GUID of computer instance must be requested on",
156       "type": "string"
157     },
158     "mariadb": {
159       "description": "Relational database service",
160       "additionalProperties": {
161         "$ref": "./instance-mariadb-input-schema.json#properties"
162       },
163       "type": "object"
164     },
165     "zodb-computer-guid": {
166       "description": "GUID of computer instance must be requested on",
167       "type": "string"
168     },
169     "zodb-software-type": {
170       "description": "Zope Object DataBase implementation",
171       "default": "zeo",
172       "enum": ["zeo", "neo"],
173       "type": "string"
174     },
175     "zodb": {
176       "description": "Zope Object DataBase service",
177       "oneOf": [
178         {"$ref": "./instance-neo-input-schema.json#properties"},
179         {"$ref": "./instance-zeo-input-schema.json#properties"}
180       ]
181     }
182   }
183 }