Revision created by MOE tool push_codebase.
[gae.git] / java / src / main / com / google / appengine / tools / development / appengine-web.xsd
blobda717d440e4591da626c310c9ad991c5c78359c6
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://appengine.google.com/ns/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3 <xs:element name="appengine-web-app" type="ns:appengine-web-appType" xmlns:ns="http://appengine.google.com/ns/1.0"/>
4 <xs:complexType name="env-varType">
5 <xs:simpleContent>
6 <xs:extension base="xs:string">
7 <xs:attribute type="xs:string" name="name" use="required"/>
8 <xs:attribute type="xs:string" name="value" use="required"/>
9 </xs:extension>
10 </xs:simpleContent>
11 </xs:complexType>
12 <xs:complexType name="system-propertiesType">
13 <xs:sequence>
14 <xs:element type="ns:propertyType" name="property" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
15 </xs:sequence>
16 </xs:complexType>
17 <xs:complexType name="propertyType">
18 <xs:simpleContent>
19 <xs:extension base="xs:string">
20 <xs:attribute type="xs:string" name="name" use="required"/>
21 <xs:attribute type="xs:string" name="value" use="required"/>
22 </xs:extension>
23 </xs:simpleContent>
24 </xs:complexType>
25 <xs:complexType name="vm-settingsType">
26 <xs:sequence>
27 <xs:element type="ns:settingType" name="setting" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
28 </xs:sequence>
29 </xs:complexType>
30 <xs:complexType name="beta-settingsType">
31 <xs:sequence>
32 <xs:element type="ns:settingType" name="setting" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
33 </xs:sequence>
34 </xs:complexType>
35 <xs:complexType name="settingType">
36 <xs:simpleContent>
37 <xs:extension base="xs:string">
38 <xs:attribute type="xs:string" name="name" use="required"/>
39 <xs:attribute type="xs:string" name="value" use="required"/>
40 </xs:extension>
41 </xs:simpleContent>
42 </xs:complexType>
43 <xs:complexType name="asyncSessionPersistenceType">
44 <xs:simpleContent>
45 <xs:extension base="xs:string">
46 <xs:attribute type="xs:boolean" name="enabled" use="required"/>
47 <xs:attribute type="xs:string" name="queue-name" use="optional"/>
48 </xs:extension>
49 </xs:simpleContent>
50 </xs:complexType>
51 <xs:complexType name="appengine-web-appType">
52 <xs:all>
53 <xs:element type="xs:string" name="application" minOccurs="0"/>
54 <xs:element type="xs:string" name="version" minOccurs="0"/>
55 <xs:element type="xs:string" name="source-language" minOccurs="0"/>
56 <xs:element type="xs:string" name="module" minOccurs="0"/>
57 <xs:element type="xs:string" name="instance-class" minOccurs="0"/>
58 <xs:element type="ns:automatic-scaling-type" name="automatic-scaling" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
59 <xs:element type="ns:manual-scaling-type" name="manual-scaling" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
60 <xs:element type="ns:basic-scaling-type" name="basic-scaling" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
61 <xs:element type="ns:static-filesType" name="static-files" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
62 <xs:element type="ns:resource-filesType" name="resource-files" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
63 <xs:element type="ns:system-propertiesType" name="system-properties" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
64 <xs:element type="ns:vm-settingsType" name="vm-settings" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
65 <xs:element type="ns:beta-settingsType" name="beta-settings" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
66 <xs:element type="ns:vm-health-checkType" name="vm-health-check" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
67 <xs:element type="ns:vm-health-checkType" name="health-check" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
68 <xs:element type="ns:resources-type" name="resources" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
69 <xs:element type="ns:network-type" name="network" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
70 <xs:element type="ns:env-variablesType" name="env-variables" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
71 <xs:element type="xs:boolean" name="ssl-enabled" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
72 <xs:element type="xs:boolean" name="sessions-enabled" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
73 <xs:element type="ns:asyncSessionPersistenceType" name="async-session-persistence" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
74 <xs:element type="ns:userPermissionsType" name="user-permissions" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
75 <xs:element type="xs:string" name="public-root" minOccurs="0"/>
76 <xs:element type="ns:inboundServicesType" name="inbound-services" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
77 <xs:element type="xs:boolean" name="precompilation-enabled" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
78 <xs:element type="ns:admin-console" name="admin-console" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
79 <xs:element type="ns:static-error-handlers" name="static-error-handlers" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
80 <xs:element type="xs:boolean" name="warmup-requests-enabled" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
81 <xs:element type="xs:boolean" name="threadsafe" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
82 <xs:element type="xs:string" name="auto-id-policy" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
83 <xs:element type="xs:boolean" name="code-lock" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
84 <xs:element type="xs:boolean" name="vm" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
85 <xs:element type="ns:pagespeedType" name="pagespeed" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
86 <xs:element type="ns:classLoaderConfigType" name="class-loader-config" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
87 <xs:element type="ns:urlStreamHandlerType" name="url-stream-handler" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
88 <xs:element type="xs:boolean" name="use-google-connector-j" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
89 </xs:all>
90 </xs:complexType>
91 <xs:complexType name="env-variablesType">
92 <xs:sequence>
93 <xs:element type="ns:env-varType" name="env-var" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
94 </xs:sequence>
95 </xs:complexType>
96 <xs:complexType name="includeType">
97 <xs:attribute type="xs:string" name="path" use="required"/>
98 </xs:complexType>
99 <!-- Adds two things to includeType: expiration attribute, and http-header children -->
100 <xs:complexType name="staticIncludeType">
101 <xs:complexContent>
102 <xs:extension base="ns:includeType" xmlns:ns="http://appengine.google.com/ns/1.0">
103 <xs:sequence>
104 <xs:element type="ns:http-headerType" name="http-header" minOccurs="0" maxOccurs="unbounded" xmlns:ns="http://appengine.google.com/ns/1.0"/>
105 </xs:sequence>
106 <xs:attribute type="ns:expirationType" name="expiration" use="optional" xmlns:ns="http://appengine.google.com/ns/1.0"/>
107 </xs:extension>
108 </xs:complexContent>
109 </xs:complexType>
110 <!-- See RFC 2616 for what constitutes valid HTTP header names and values. -->
111 <xs:complexType name="http-headerType">
112 <xs:attribute type="xs:string" name="name" use="required"/>
113 <xs:attribute type="xs:string" name="value" use="required"/>
114 </xs:complexType>
115 <xs:complexType name="resource-filesType">
116 <xs:sequence>
117 <xs:element type="ns:includeType" name="include" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
118 <xs:element type="ns:excludeType" name="exclude" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
119 </xs:sequence>
120 </xs:complexType>
121 <xs:complexType name="automatic-scaling-type">
122 <xs:all>
123 <xs:element type="xs:string" name="min-pending-latency" minOccurs="0"/>
124 <xs:element type="xs:string" name="max-pending-latency" minOccurs="0"/>
125 <xs:element type="xs:string" name="min-idle-instances" minOccurs="0"/>
126 <xs:element type="xs:string" name="max-idle-instances" minOccurs="0"/>
127 <xs:element type="xs:string" name="max-concurrent-requests" minOccurs="0"/>
128 <xs:element type="xs:positiveInteger" name="min-num-instances" minOccurs="0"/>
129 <xs:element type="xs:positiveInteger" name="max-num-instances" minOccurs="0"/>
130 <xs:element type="xs:positiveInteger" name="cool-down-period-sec" minOccurs="0"/>
131 <xs:element type="ns:cpu-utilization-type" name="cpu-utilization" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
132 </xs:all>
133 </xs:complexType>
134 <xs:complexType name="cpu-utilization-type">
135 <xs:all>
136 <xs:element name="target-utilization" minOccurs="0">
137 <xs:simpleType>
138 <xs:restriction base="xs:decimal">
139 <xs:minExclusive value="0"/>
140 <xs:maxInclusive value="1"/>
141 </xs:restriction>
142 </xs:simpleType>
143 </xs:element>
144 <xs:element type="xs:positiveInteger" name="aggregation-window-length-sec" minOccurs="0"/>
145 </xs:all>
146 </xs:complexType>
147 <xs:complexType name="vm-health-checkType">
148 <xs:all>
149 <xs:element type="xs:boolean" name="enable-health-check" minOccurs="0"/>
150 <xs:element type="xs:unsignedInt" name="check-interval-sec" minOccurs="0"/>
151 <xs:element type="xs:unsignedInt" name="timeout-sec" minOccurs="0"/>
152 <xs:element type="xs:unsignedInt" name="unhealthy-threshold" minOccurs="0"/>
153 <xs:element type="xs:unsignedInt" name="healthy-threshold" minOccurs="0"/>
154 <xs:element type="xs:unsignedInt" name="restart-threshold" minOccurs="0"/>
155 <xs:element type="xs:string" name="host" minOccurs="0"/>
156 </xs:all>
157 </xs:complexType>
158 <xs:complexType name="resources-type">
159 <xs:all>
160 <xs:element type="xs:double" name="cpu" minOccurs="0"/>
161 <xs:element type="xs:double" name="memory-gb" minOccurs="0"/>
162 <xs:element type="xs:unsignedInt" name="disk-size-gb" minOccurs="0"/>
163 </xs:all>
164 </xs:complexType>
165 <xs:complexType name="network-type">
166 <xs:all>
167 <xs:element type="xs:string" name="forwarded-port" minOccurs="0"/>
168 <xs:element type="xs:string" name="instance-tag" minOccurs="0"/>
169 <xs:element type="xs:string" name="name" minOccurs="0"/>
170 </xs:all>
171 </xs:complexType>
172 <xs:complexType name="manual-scaling-type">
173 <xs:all>
174 <xs:element type="xs:string" name="instances"/>
175 </xs:all>
176 </xs:complexType>
177 <xs:complexType name="basic-scaling-type">
178 <xs:all>
179 <xs:element type="xs:string" name="max-instances"/>
180 <xs:element type="xs:string" name="idle-timeout" minOccurs="0"/>
181 </xs:all>
182 </xs:complexType>
183 <xs:complexType name="static-filesType">
184 <xs:sequence>
185 <xs:element type="ns:staticIncludeType" name="include" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
186 <xs:element type="ns:excludeType" name="exclude" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
187 </xs:sequence>
188 </xs:complexType>
189 <xs:complexType name="excludeType">
190 <xs:attribute type="xs:string" name="path" use="required"/>
191 </xs:complexType>
192 <xs:complexType name="userPermissionsType">
193 <xs:sequence>
194 <xs:element type="ns:permissionType" name="permission" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
195 </xs:sequence>
196 </xs:complexType>
197 <xs:complexType name="permissionType">
198 <xs:simpleContent>
199 <xs:extension base="xs:string">
200 <xs:attribute type="xs:string" name="class" use="required"/>
201 <xs:attribute type="xs:string" name="name" use="required"/>
202 <xs:attribute type="xs:string" name="actions" use="optional"/>
203 </xs:extension>
204 </xs:simpleContent>
205 </xs:complexType>
206 <xs:complexType name="inboundServicesType">
207 <xs:sequence>
208 <xs:element type="xs:string" name="service" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
209 </xs:sequence>
210 </xs:complexType>
211 <xs:simpleType name="expirationType">
212 <xs:restriction base="xs:string">
213 <xs:pattern value="\s*(([0-9]+)([DdHhMm]|[sS]?))(\s+([0-9]+)([DdHhMm]|[sS]?))*\s*"/>
214 </xs:restriction>
215 </xs:simpleType>
216 <xs:complexType name="admin-console">
217 <xs:sequence>
218 <xs:element type="ns:admin-console-pageType" name="page" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
219 </xs:sequence>
220 </xs:complexType>
221 <xs:complexType name="admin-console-pageType">
222 <xs:simpleContent>
223 <xs:extension base="xs:string">
224 <xs:attribute type="xs:string" name="name" use="required"/>
225 <xs:attribute type="xs:string" name="url" use="required"/>
226 </xs:extension>
227 </xs:simpleContent>
228 </xs:complexType>
229 <xs:complexType name="static-error-handlers">
230 <xs:sequence>
231 <xs:element type="ns:static-error-handlers-handler" name="handler" maxOccurs="unbounded" minOccurs="0" xmlns:ns="http://appengine.google.com/ns/1.0"/>
232 </xs:sequence>
233 </xs:complexType>
234 <xs:complexType name="static-error-handlers-handler">
235 <xs:simpleContent>
236 <xs:extension base="xs:string">
237 <xs:attribute type="xs:string" name="file" use="required"/>
238 <xs:attribute type="xs:string" name="error-code" use="optional"/>
239 </xs:extension>
240 </xs:simpleContent>
241 </xs:complexType>
242 <xs:complexType name="pagespeedType">
243 <xs:choice maxOccurs="unbounded" minOccurs="0">
244 <xs:element type="xs:string" name="url-blacklist"/>
245 <xs:element type="xs:string" name="domain-to-rewrite"/>
246 <xs:element type="xs:string" name="enabled-rewriter"/>
247 <xs:element type="xs:string" name="disabled-rewriter"/>
248 </xs:choice>
249 </xs:complexType>
250 <xs:complexType name="classLoaderConfigType">
251 <xs:sequence>
252 <xs:element type="ns:prioritySpecifierType" name="priority-specifier" maxOccurs="unbounded" minOccurs="1"/>
253 </xs:sequence>
254 </xs:complexType>
255 <xs:complexType name="prioritySpecifierType">
256 <xs:simpleContent>
257 <xs:extension base="xs:string">
258 <xs:attribute type="xs:string" name="filename" use="required"/>
259 <xs:attribute type="xs:double" name="priority" use="optional"/>
260 </xs:extension>
261 </xs:simpleContent>
262 </xs:complexType>
263 <xs:simpleType name="urlStreamHandlerType">
264 <xs:restriction base="xs:string">
265 <xs:pattern value="urlfetch|native"/>
266 </xs:restriction>
267 </xs:simpleType>
268 </xs:schema>