pull in new policy updates
[profile/ivi/smartdevicelink.git] / src / components / policy / src / policy / policy_table_interface.xml
1 <?xml version="1.0" standalone="no"?>
2 <?xml-stylesheet type="text/xml" href="protocol2html.xsl"?>
3
4 <interface name="policy table interface base" version="0.0"
5     date="2014-01-23">
6
7     <!-- Common parameters start -->
8     <enum name="Priority">
9         <element name="EMERGENCY" />
10         <element name="NAVIGATION" />
11         <element name="VOICECOM" />
12         <element name="COMMUNICATION" />
13         <element name="NORMAL" />
14         <element name="NONE" />
15     </enum>
16
17     <enum name="HmiLevel">
18         <element name="BACKGROUND" />
19         <element name="FULL" />
20         <element name="LIMITED" />
21         <element name="NONE" />
22     </enum>
23
24     <enum name="Parameter">
25         <element name="gps" />
26         <element name="speed" />
27         <element name="engineTorque" />
28         <element name="externalTemperature" />
29         <element name="fuelLevel" />
30         <element name="fuelLevel_State" />
31         <element name="headLampStatus" />
32         <element name="instantFuelConsumption" />
33         <element name="odometer" />
34         <element name="tirePressure" />
35         <element name="wiperStatus" />
36         <element name="vin" />
37         <element name="accPedalPosition" />
38         <element name="beltStatus" />
39         <element name="driverBraking" />
40         <element name="prndl" />
41         <element name="rpm" />
42         <element name="steeringWheelAngle" />
43         <element name="myKey" />
44         <element name="airbagStatus" />
45         <element name="bodyInformation" />
46         <element name="clusterModeStatus" />
47         <element name="deviceStatus" />
48         <element name="emergencyEvent" />
49         <element name="eCallInfo" />
50     </enum>
51
52     <enum name="AppHMIType">
53         <element name="DEFAULT" />
54         <element name="COMMUNICATION" />
55         <element name="MEDIA" />
56         <element name="MESSAGING" />
57         <element name="NAVIGATION" />
58         <element name="INFORMATION" />
59         <element name="SOCIAL" />
60         <element name="BACKGROUND_PROCESS" />
61         <element name="TESTING" />
62         <element name="SYSTEM" />
63     </enum>
64     <!-- Common parameters end -->
65
66     <!-- app_policies section start -->
67
68     <typedef name="Strings" type="String" maxlength="255" array="true"
69         maxsize="255" />
70
71     <typedef name="AppHMITypes" type="AppHMIType" array="true"
72         maxsize="255" />
73
74     <struct name="ApplicationParams">
75         <param name="groups" type="Strings" />
76         <param name="nicknames" type="Strings" mandatory="false" />
77         <param name="AppHMIType" type="AppHMITypes" mandatory="false" />
78         <param name="memory_kb" type="Integer" minvalue="1" maxvalue="65225" mandatory="false"/>
79         <param name="watchdog_timer_ms" type="Integer" minvalue="1"
80             maxvalue="65225" mandatory="false"/>
81         <param name="certificate" type="String" minlength="0" maxlength="255"
82             mandatory="false" />
83     </struct>
84
85     <typedef name="HmiLevels" type="HmiLevel" array="true"
86         maxsize="4" />
87     <typedef name="Parameters" type="Parameter" array="true"
88         maxsize="24" />
89
90     <struct name="RpcParameters">
91         <!-- maxsizes are equal to number of currently known elements of
92             given type -->
93         <param name="hmi_levels" type="HmiLevels" />
94         <param name="parameters" type="Parameters" mandatory="false" />
95     </struct>
96
97     <!-- maxsizes are equal to number of currently known elements of given
98         type -->
99     <typedef name="Rpc" type="RpcParameters" map="true" maxsize="50" />
100
101     <struct name="Rpcs">
102         <param name="user_consent_prompt" type="String" minlegth="1"
103             maxlength="255" mandatory="false"/>
104         <param name="rpcs" type="Rpc" null_values_allowed="true"/>
105     </struct>
106     <!-- app_policies section end -->
107
108     <!-- module_config section start -->
109     <!-- minlenght="10" since minimum expected is "http://a.b" -->
110     <typedef name="URL" type="String" minlength="10" maxlength="255"
111         array="true" minsize="1" maxsize="255" />
112
113     <typedef name="URLList" type="URL" map="true" minsize="1"
114         maxsize="255" />
115
116     <!-- max number of services is limited to 255 according to protocol specification -->
117     <typedef name="ServiceEndpoints" type="URLList" map="true"
118         minsize="1" maxsize="255" />
119
120     <typedef name="NumberOfNotificationsPerMinute" type="Integer"
121         map="true" maxsize="6" minvalue="0" maxvalue="255" />
122
123     <typedef name="SecondsBetweenRetries" type="Integer" array="true"
124         maxsize="10" minvalue="1" maxvalue="1000" />
125
126     <struct name="ModuleConfig">
127         <param name="device_certificates" type="String" minlength="1" maxlength="100" mandatory="false" map="true" minsize="1" maxsize="255" />
128         <param name="preloaded_pt" type="Boolean" mandatory="false" />
129         <param name="exchange_after_x_ignition_cycles" type="Integer"
130             maxvalue="255" />
131         <param name="exchange_after_x_kilometers" type="Integer"
132             maxvalue="4294967296" />
133         <param name="exchange_after_x_days" type="Integer"
134             maxvalue="255" />
135         <param name="timeout_after_x_seconds" type="Integer"
136             maxvalue="65535" />
137         <param name="seconds_between_retries" type="SecondsBetweenRetries" />
138         <param name="endpoints" type="ServiceEndpoints" />
139         <param name="notifications_per_minute_by_priority" type="NumberOfNotificationsPerMinute" />
140         <param name="vehicle_make" type="String" maxlength="100"
141             mandatory="false" />
142         <param name="vehicle_model" type="String" maxlength="100"
143             mandatory="false" />
144         <param name="vehicle_year" type="String" minlength="4" maxlength="4"
145             mandatory="false" />
146     </struct>
147     <!-- module_config section end -->
148
149     <!-- consumer_friendly_messages section start -->
150     <struct name="MessageString">
151         <param name="line1" type="String" maxlength="255"
152             mandatory="false" />
153         <param name="line2" type="String" maxlength="255"
154             mandatory="false" />
155         <param name="tts" type="String" maxlength="65535" mandatory="false" />
156         <param name="label" type="String" maxlength="255"
157             mandatory="false" />
158         <param name="textBody" type="String" maxlength="500"
159             mandatory="false" />
160     </struct>
161
162     <typedef name="Languages" map="true" type="MessageString"
163         maxsize="500" mandatory="false" />
164
165     <struct name="MessageLanguages">
166         <param name="languages" type="Languages" />
167     </struct>
168
169     <typedef name="Messages" map="true" type="MessageLanguages"
170         maxsize="255" />
171
172     <struct name="ConsumerFriendlyMessages">
173         <param name="version" type="String" maxlength="100" />
174         <param name="messages" type="Messages" mandatory="false" />
175     </struct>
176     <!-- consumer_friendly_messages section end -->
177
178     <!-- module_meta section start -->
179     <struct name="ModuleMeta">
180     </struct>
181     <!-- module_meta section end -->
182
183     <!-- usage_and_error_counts section start -->
184     <struct name="AppLevel">
185     </struct>
186
187     <typedef name="AppLevels" type="AppLevel" map="true" maxsize="255" />
188
189     <struct name="UsageAndErrorCounts">
190         <param name="app_level" type="AppLevels" mandatory="false" />
191     </struct>
192     <!-- usage_and_error_counts section end -->
193
194     <!-- device_data section start -->
195     <struct name="DeviceParams">
196     </struct>
197     <!-- device_data section end -->
198
199     <!-- policy_table section start -->
200     <typedef name="ApplicationPolicies" map="true" type="ApplicationParams" null_values_allowed="true" minsize="1" maxsize="1000" />
201
202     <typedef name="FunctionalGroupings" map="true" type="Rpcs"
203         minsize="1" maxsize="255" />
204
205     <typedef name="DeviceData" map="true" type="DeviceParams"
206         maxsize="255" />
207
208     <struct name="PolicyTable">
209         <!-- maxsize for app_policies can be changed, if necessary -->
210         <param name="app_policies" type="ApplicationPolicies" />
211         <param name="functional_groupings" type="FunctionalGroupings" />
212         <param name="consumer_friendly_messages" type="ConsumerFriendlyMessages" />
213         <param name="module_config" type="ModuleConfig" />
214         <param name="module_meta" type="ModuleMeta" mandatory="false"/>
215         <param name="usage_and_error_counts" type="UsageAndErrorCounts" mandatory="false" />
216         <param name="device_data" type="DeviceData" mandatory="false" />
217     </struct>
218     <!-- policy_table section end -->
219
220     <!-- Root element -->
221     <struct name="Table">
222         <param name="policy_table" type="PolicyTable" />
223     </struct>
224
225 </interface>