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">
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"/>
12 <xs:complexType name=
"system-propertiesType">
14 <xs:element type=
"ns:propertyType" name=
"property" maxOccurs=
"unbounded" minOccurs=
"0" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
17 <xs:complexType name=
"propertyType">
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"/>
25 <xs:complexType name=
"vm-settingsType">
27 <xs:element type=
"ns:settingType" name=
"setting" maxOccurs=
"unbounded" minOccurs=
"0" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
30 <xs:complexType name=
"beta-settingsType">
32 <xs:element type=
"ns:settingType" name=
"setting" maxOccurs=
"unbounded" minOccurs=
"0" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
35 <xs:complexType name=
"settingType">
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"/>
43 <xs:complexType name=
"asyncSessionPersistenceType">
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"/>
51 <xs:complexType name=
"appengine-web-appType">
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"/>
91 <xs:complexType name=
"env-variablesType">
93 <xs:element type=
"ns:env-varType" name=
"env-var" maxOccurs=
"unbounded" minOccurs=
"0" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
96 <xs:complexType name=
"includeType">
97 <xs:attribute type=
"xs:string" name=
"path" use=
"required"/>
99 <!-- Adds two things to includeType: expiration attribute, and http-header children -->
100 <xs:complexType name=
"staticIncludeType">
102 <xs:extension base=
"ns:includeType" xmlns:
ns=
"http://appengine.google.com/ns/1.0">
104 <xs:element type=
"ns:http-headerType" name=
"http-header" minOccurs=
"0" maxOccurs=
"unbounded" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
106 <xs:attribute type=
"ns:expirationType" name=
"expiration" use=
"optional" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
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"/>
115 <xs:complexType name=
"resource-filesType">
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"/>
121 <xs:complexType name=
"automatic-scaling-type">
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"/>
134 <xs:complexType name=
"cpu-utilization-type">
136 <xs:element name=
"target-utilization" minOccurs=
"0">
138 <xs:restriction base=
"xs:decimal">
139 <xs:minExclusive value=
"0"/>
140 <xs:maxInclusive value=
"1"/>
144 <xs:element type=
"xs:positiveInteger" name=
"aggregation-window-length-sec" minOccurs=
"0"/>
147 <xs:complexType name=
"vm-health-checkType">
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"/>
158 <xs:complexType name=
"resources-type">
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"/>
165 <xs:complexType name=
"network-type">
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"/>
172 <xs:complexType name=
"manual-scaling-type">
174 <xs:element type=
"xs:string" name=
"instances"/>
177 <xs:complexType name=
"basic-scaling-type">
179 <xs:element type=
"xs:string" name=
"max-instances"/>
180 <xs:element type=
"xs:string" name=
"idle-timeout" minOccurs=
"0"/>
183 <xs:complexType name=
"static-filesType">
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"/>
189 <xs:complexType name=
"excludeType">
190 <xs:attribute type=
"xs:string" name=
"path" use=
"required"/>
192 <xs:complexType name=
"userPermissionsType">
194 <xs:element type=
"ns:permissionType" name=
"permission" maxOccurs=
"unbounded" minOccurs=
"0" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
197 <xs:complexType name=
"permissionType">
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"/>
206 <xs:complexType name=
"inboundServicesType">
208 <xs:element type=
"xs:string" name=
"service" maxOccurs=
"unbounded" minOccurs=
"0" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
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*"/>
216 <xs:complexType name=
"admin-console">
218 <xs:element type=
"ns:admin-console-pageType" name=
"page" maxOccurs=
"unbounded" minOccurs=
"0" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
221 <xs:complexType name=
"admin-console-pageType">
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"/>
229 <xs:complexType name=
"static-error-handlers">
231 <xs:element type=
"ns:static-error-handlers-handler" name=
"handler" maxOccurs=
"unbounded" minOccurs=
"0" xmlns:
ns=
"http://appengine.google.com/ns/1.0"/>
234 <xs:complexType name=
"static-error-handlers-handler">
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"/>
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"/>
250 <xs:complexType name=
"classLoaderConfigType">
252 <xs:element type=
"ns:prioritySpecifierType" name=
"priority-specifier" maxOccurs=
"unbounded" minOccurs=
"1"/>
255 <xs:complexType name=
"prioritySpecifierType">
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"/>
263 <xs:simpleType name=
"urlStreamHandlerType">
264 <xs:restriction base=
"xs:string">
265 <xs:pattern value=
"urlfetch|native"/>