Merge branch '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     "zope-partition-dict": {
23       "description": "Zope layout definition",
24       "patternProperties": {
25         ".*": {
26           "additionalProperties": false,
27           "properties": {
28             "family": {
29               "description": "The family this partition is part of. For example: 'public', 'admin', 'backoffice', 'web-service'... Each family gets its own frontend (=client-facing ip & port). It has no special meaning for the system.",
30               "default": "default",
31               "type": "string"
32             },
33             "instance-count": {
34               "description": "Number of Zopes to setup on this partition",
35               "default": 1,
36               "type": "integer"
37             },
38             "thread-amount": {
39               "description": "Number of worker threads for each created Zope process",
40               "default": 1,
41               "type": "integer"
42             },
43             "timerserver-interval": {
44               "description": "Timerserver tick perdiod, in seconds, or 0 to disable",
45               "default": 5,
46               "type": "integer"
47             },
48             "longrequest-logger-interval": {
49               "description": "Period, in seconds, with which LongRequestLogger polls worker thread stack traces, or -1 to disable",
50               "default": -1,
51               "type": "integer"
52             },
53             "longrequest-logger-timeout": {
54               "description": "Transaction duration after which LongRequestLogger will start logging its stack trace, in seconds",
55               "default": 1,
56               "type": "integer"
57             },
58             "port-base": {
59               "allOf": [{
60                 "$ref": "#/definitions/tcpv4port"
61               }, {
62                 "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)",
63                 "default": 2200
64               }]
65             },
66             "computer-guid": {
67               "description": "GUID of computer instance must be requested on",
68               "type": "string"
69             }
70           },
71           "type": "object"
72         }
73       },
74       "type": "object"
75     },
76     "frontend": {
77       "additionalProperties": false,
78       "properties": {
79         "software-url": {
80           "description": "Software URL of an existing frontend, no frontend will be requested if this value is empty",
81           "default": "",
82           "type": "string"
83         },
84         "instance-guid": {
85           "description": "Frontend's instance GUID, required if software-url is non-empty (not perfect: if frontend is moved and its instance GUID changes, you need to update this value)",
86           "type": "string"
87         },
88         "software-type": {
89           "description": "Frontend software type in given software relase",
90           "default": "RootSoftwareInsance",
91           "type": "string"
92         },
93         "domain": {
94           "description": "Domain name belonging to this instance",
95           "default": "",
96           "type": "string"
97         }
98       },
99       "default": {},
100       "type": "object"
101     },
102     "kumofs-computer-guid": {
103       "description": "GUID of computer instance must be requested on",
104       "type": "string"
105     },
106     "kumofs": {
107       "description": "Persistent memcached service",
108       "additionalProperties": {
109         "$ref": "./instance-kumofs-input-schema.json#properties"
110       },
111       "type": "object"
112     },
113     "memcached-computer-guid": {
114       "description": "GUID of computer instance must be requested on",
115       "type": "string"
116     },
117     "memcached": {
118       "description": "Volatile memcached service",
119       "additionalProperties": {
120         "$ref": "./instance-kumofs-input-schema.json#properties"
121       },
122       "type": "object"
123     },
124     "cloudooo-computer-guid": {
125       "description": "GUID of computer instance must be requested on",
126       "type": "string"
127     },
128     "cloudooo": {
129       "description": "Format conversion service",
130       "additionalProperties": {
131         "$ref": "./instance-cloudooo-input-schema.json#properties"
132       },
133       "type": "object"
134     },
135     "mariadb-computer-guid": {
136       "description": "GUID of computer instance must be requested on",
137       "type": "string"
138     },
139     "mariadb": {
140       "description": "Relational database service",
141       "additionalProperties": {
142         "$ref": "./instance-mariadb-input-schema.json#properties"
143       },
144       "type": "object"
145     },
146     "zodb-computer-guid": {
147       "description": "GUID of computer instance must be requested on",
148       "type": "string"
149     },
150     "zodb-software-type": {
151       "description": "Zope Object DataBase implementation",
152       "default": "zeo",
153       "enum": ["zeo", "neo"],
154       "type": "string"
155     },
156     "zodb": {
157       "description": "Zope Object DataBase service",
158       "oneOf": [
159         {"$ref": "./instance-neo-input-schema.json#properties"},
160         {"$ref": "./instance-zeo-input-schema.json#properties"}
161       ]
162     }
163   }
164 }