xref: /titanic_51/usr/src/cmd/svc/dtd/service_bundle.dtd.1 (revision f6e214c7418f43af38bd8c3a557e3d0a1d311cfa)
17c478bd9Sstevel@tonic-gate<?xml version="1.0" encoding="UTF-8"?>
27c478bd9Sstevel@tonic-gate<!--
3f329b923SSean Wilcox Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
47c478bd9Sstevel@tonic-gate
57c478bd9Sstevel@tonic-gate CDDL HEADER START
67c478bd9Sstevel@tonic-gate
77c478bd9Sstevel@tonic-gate The contents of this file are subject to the terms of the
85703ae89Stalley Common Development and Distribution License (the "License").
95703ae89Stalley You may not use this file except in compliance with the License.
107c478bd9Sstevel@tonic-gate
117c478bd9Sstevel@tonic-gate You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
127c478bd9Sstevel@tonic-gate or http://www.opensolaris.org/os/licensing.
137c478bd9Sstevel@tonic-gate See the License for the specific language governing permissions
147c478bd9Sstevel@tonic-gate and limitations under the License.
157c478bd9Sstevel@tonic-gate
167c478bd9Sstevel@tonic-gate When distributing Covered Code, include this CDDL HEADER in each
177c478bd9Sstevel@tonic-gate file and include the License file at usr/src/OPENSOLARIS.LICENSE.
187c478bd9Sstevel@tonic-gate If applicable, add the following below this CDDL HEADER, with the
197c478bd9Sstevel@tonic-gate fields enclosed by brackets "[]" replaced with your own identifying
207c478bd9Sstevel@tonic-gate information: Portions Copyright [yyyy] [name of copyright owner]
217c478bd9Sstevel@tonic-gate
227c478bd9Sstevel@tonic-gate CDDL HEADER END
237c478bd9Sstevel@tonic-gate-->
247c478bd9Sstevel@tonic-gate
257c478bd9Sstevel@tonic-gate<!--
267c478bd9Sstevel@tonic-gate  Service description DTD
277c478bd9Sstevel@tonic-gate
287c478bd9Sstevel@tonic-gate    Most attributes are string values (or an individual string from a
297c478bd9Sstevel@tonic-gate    restricted set), but attributes with a specific type requirement are
307c478bd9Sstevel@tonic-gate    noted in the comment describing the element.
317c478bd9Sstevel@tonic-gate-->
327c478bd9Sstevel@tonic-gate
337c478bd9Sstevel@tonic-gate<!--
347c478bd9Sstevel@tonic-gate  XInclude support
357c478bd9Sstevel@tonic-gate
367c478bd9Sstevel@tonic-gate    A series of service bundles may be composed via the xi:include tag.
377c478bd9Sstevel@tonic-gate    smf(5) tools enforce that all bundles be of the same type.
387c478bd9Sstevel@tonic-gate-->
39f329b923SSean Wilcox
40f329b923SSean Wilcox<!--
41f329b923SSean Wilcox     These entities are used for the property, propval and property_group
42f329b923SSean Wilcox     elements, that require type attributes for manifest, while for profiles
43f329b923SSean Wilcox     the type attributes are only implied.
44f329b923SSean Wilcox-->
45f329b923SSean Wilcox
46f329b923SSean Wilcox<!ENTITY % profile "IGNORE">
47f329b923SSean Wilcox<!ENTITY % manifest "INCLUDE">
48f329b923SSean Wilcox
497c478bd9Sstevel@tonic-gate<!ELEMENT xi:include
507c478bd9Sstevel@tonic-gate  (xi:fallback)
517c478bd9Sstevel@tonic-gate  >
527c478bd9Sstevel@tonic-gate<!ATTLIST xi:include
537c478bd9Sstevel@tonic-gate  href CDATA #REQUIRED
547c478bd9Sstevel@tonic-gate  parse (xml|text) "xml"
557c478bd9Sstevel@tonic-gate  encoding CDATA #IMPLIED
567c478bd9Sstevel@tonic-gate  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
577c478bd9Sstevel@tonic-gate  >
587c478bd9Sstevel@tonic-gate
597c478bd9Sstevel@tonic-gate<!ELEMENT xi:fallback
607c478bd9Sstevel@tonic-gate  ANY
617c478bd9Sstevel@tonic-gate  >
627c478bd9Sstevel@tonic-gate<!ATTLIST xi:fallback
637c478bd9Sstevel@tonic-gate  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
647c478bd9Sstevel@tonic-gate  >
657c478bd9Sstevel@tonic-gate
667c478bd9Sstevel@tonic-gate<!--
677c478bd9Sstevel@tonic-gate  stability
687c478bd9Sstevel@tonic-gate
697c478bd9Sstevel@tonic-gate    This element associates an SMI stability level with the parent
707c478bd9Sstevel@tonic-gate    element.  See attributes(5) for an explanation of interface
717c478bd9Sstevel@tonic-gate    stability levels.
727c478bd9Sstevel@tonic-gate
737c478bd9Sstevel@tonic-gate    Its attribute is
747c478bd9Sstevel@tonic-gate
757c478bd9Sstevel@tonic-gate	value	The stability level of the parent element.
767c478bd9Sstevel@tonic-gate-->
777c478bd9Sstevel@tonic-gate
787c478bd9Sstevel@tonic-gate<!ELEMENT stability EMPTY>
797c478bd9Sstevel@tonic-gate
807c478bd9Sstevel@tonic-gate<!ATTLIST stability
817c478bd9Sstevel@tonic-gate	value		( Standard | Stable | Evolving | Unstable |
827c478bd9Sstevel@tonic-gate			External | Obsolete ) #REQUIRED >
837c478bd9Sstevel@tonic-gate
847c478bd9Sstevel@tonic-gate<!-- Property value lists -->
857c478bd9Sstevel@tonic-gate
867c478bd9Sstevel@tonic-gate<!--
877c478bd9Sstevel@tonic-gate  value_node
887c478bd9Sstevel@tonic-gate
897c478bd9Sstevel@tonic-gate    This element represents a single value within any of the typed
907c478bd9Sstevel@tonic-gate    property value lists.
917c478bd9Sstevel@tonic-gate
927c478bd9Sstevel@tonic-gate    Its attribute is
937c478bd9Sstevel@tonic-gate
947c478bd9Sstevel@tonic-gate	value	The value for this node in the list.
957c478bd9Sstevel@tonic-gate-->
967c478bd9Sstevel@tonic-gate
977c478bd9Sstevel@tonic-gate<!ELEMENT value_node EMPTY>
987c478bd9Sstevel@tonic-gate
997c478bd9Sstevel@tonic-gate<!ATTLIST value_node
1007c478bd9Sstevel@tonic-gate	value CDATA #REQUIRED>
1017c478bd9Sstevel@tonic-gate
1027c478bd9Sstevel@tonic-gate<!--
1037c478bd9Sstevel@tonic-gate  count_list
1047c478bd9Sstevel@tonic-gate  integer_list
1057c478bd9Sstevel@tonic-gate  opaque_list
1067c478bd9Sstevel@tonic-gate  host_list
1077c478bd9Sstevel@tonic-gate  hostname_list
108f6f041a2SAntonello Cruz  net_address_list
1097c478bd9Sstevel@tonic-gate  net_address_v4_list
1107c478bd9Sstevel@tonic-gate  net_address_v6_list
1117c478bd9Sstevel@tonic-gate  time_list
1127c478bd9Sstevel@tonic-gate  astring_list
1137c478bd9Sstevel@tonic-gate  ustring_list
1147c478bd9Sstevel@tonic-gate  boolean_list
1157c478bd9Sstevel@tonic-gate  fmri_list
1167c478bd9Sstevel@tonic-gate  uri_list
1177c478bd9Sstevel@tonic-gate
1187c478bd9Sstevel@tonic-gate    These elements represent the typed lists of values for a property.
1197c478bd9Sstevel@tonic-gate    Each contains one or more value_node elements representing each
1207c478bd9Sstevel@tonic-gate    value on the list.
1217c478bd9Sstevel@tonic-gate
1227c478bd9Sstevel@tonic-gate    None of these elements has attributes.
1237c478bd9Sstevel@tonic-gate-->
1247c478bd9Sstevel@tonic-gate
1257c478bd9Sstevel@tonic-gate<!ELEMENT count_list
1267c478bd9Sstevel@tonic-gate	( value_node+ )>
1277c478bd9Sstevel@tonic-gate
1287c478bd9Sstevel@tonic-gate<!ATTLIST count_list>
1297c478bd9Sstevel@tonic-gate
1307c478bd9Sstevel@tonic-gate<!ELEMENT integer_list
1317c478bd9Sstevel@tonic-gate	( value_node+ )>
1327c478bd9Sstevel@tonic-gate
1337c478bd9Sstevel@tonic-gate<!ATTLIST integer_list>
1347c478bd9Sstevel@tonic-gate
1357c478bd9Sstevel@tonic-gate<!ELEMENT opaque_list
1367c478bd9Sstevel@tonic-gate	( value_node+ )>
1377c478bd9Sstevel@tonic-gate
1387c478bd9Sstevel@tonic-gate<!ATTLIST opaque_list>
1397c478bd9Sstevel@tonic-gate
1407c478bd9Sstevel@tonic-gate<!ELEMENT host_list
1417c478bd9Sstevel@tonic-gate	( value_node+ )>
1427c478bd9Sstevel@tonic-gate
1437c478bd9Sstevel@tonic-gate<!ATTLIST host_list>
1447c478bd9Sstevel@tonic-gate
1457c478bd9Sstevel@tonic-gate<!ELEMENT hostname_list
1467c478bd9Sstevel@tonic-gate	( value_node+ )>
1477c478bd9Sstevel@tonic-gate
1487c478bd9Sstevel@tonic-gate<!ATTLIST hostname_list>
1497c478bd9Sstevel@tonic-gate
150f6f041a2SAntonello Cruz<!ELEMENT net_address_list
151f6f041a2SAntonello Cruz	( value_node+ )>
152f6f041a2SAntonello Cruz
153f6f041a2SAntonello Cruz<!ATTLIST net_address_list>
154f6f041a2SAntonello Cruz
1557c478bd9Sstevel@tonic-gate<!ELEMENT net_address_v4_list
1567c478bd9Sstevel@tonic-gate	( value_node+ )>
1577c478bd9Sstevel@tonic-gate
1587c478bd9Sstevel@tonic-gate<!ATTLIST net_address_v4_list>
1597c478bd9Sstevel@tonic-gate
1607c478bd9Sstevel@tonic-gate<!ELEMENT net_address_v6_list
1617c478bd9Sstevel@tonic-gate	( value_node+ )>
1627c478bd9Sstevel@tonic-gate
1637c478bd9Sstevel@tonic-gate<!ATTLIST net_address_v6_list>
1647c478bd9Sstevel@tonic-gate
1657c478bd9Sstevel@tonic-gate<!ELEMENT time_list
1667c478bd9Sstevel@tonic-gate	( value_node+ )>
1677c478bd9Sstevel@tonic-gate
1687c478bd9Sstevel@tonic-gate<!ATTLIST time_list>
1697c478bd9Sstevel@tonic-gate
1707c478bd9Sstevel@tonic-gate<!ELEMENT astring_list
1717c478bd9Sstevel@tonic-gate	( value_node+ )>
1727c478bd9Sstevel@tonic-gate
1737c478bd9Sstevel@tonic-gate<!ATTLIST astring_list>
1747c478bd9Sstevel@tonic-gate
1757c478bd9Sstevel@tonic-gate<!ELEMENT ustring_list
1767c478bd9Sstevel@tonic-gate	( value_node+ )>
1777c478bd9Sstevel@tonic-gate
1787c478bd9Sstevel@tonic-gate<!ATTLIST ustring_list>
1797c478bd9Sstevel@tonic-gate
1807c478bd9Sstevel@tonic-gate<!ELEMENT boolean_list
1817c478bd9Sstevel@tonic-gate	( value_node+ )>
1827c478bd9Sstevel@tonic-gate
1837c478bd9Sstevel@tonic-gate<!ATTLIST boolean_list>
1847c478bd9Sstevel@tonic-gate
1857c478bd9Sstevel@tonic-gate<!ELEMENT fmri_list
1867c478bd9Sstevel@tonic-gate	( value_node+ )>
1877c478bd9Sstevel@tonic-gate
1887c478bd9Sstevel@tonic-gate<!ATTLIST fmri_list>
1897c478bd9Sstevel@tonic-gate
1907c478bd9Sstevel@tonic-gate<!ELEMENT uri_list
1917c478bd9Sstevel@tonic-gate	( value_node+ )>
1927c478bd9Sstevel@tonic-gate
1937c478bd9Sstevel@tonic-gate<!ATTLIST uri_list>
1947c478bd9Sstevel@tonic-gate
1957c478bd9Sstevel@tonic-gate<!-- Properties and property groups -->
1967c478bd9Sstevel@tonic-gate
1977c478bd9Sstevel@tonic-gate<!--
1987c478bd9Sstevel@tonic-gate   property
1997c478bd9Sstevel@tonic-gate
2007c478bd9Sstevel@tonic-gate     This element is for a singly or multiply valued property within a
2017c478bd9Sstevel@tonic-gate     property group.  It contains an appropriate value list element,
2027c478bd9Sstevel@tonic-gate     which is expected to be consistent with the type attribute.
2037c478bd9Sstevel@tonic-gate
2047c478bd9Sstevel@tonic-gate     Its attributes are
2057c478bd9Sstevel@tonic-gate
2067c478bd9Sstevel@tonic-gate	name	The name of this property.
2077c478bd9Sstevel@tonic-gate
2087c478bd9Sstevel@tonic-gate	type	The data type for this property.
2097c478bd9Sstevel@tonic-gate
2107c478bd9Sstevel@tonic-gate	override These values should replace values already in the
2117c478bd9Sstevel@tonic-gate		repository.
2127c478bd9Sstevel@tonic-gate-->
2137c478bd9Sstevel@tonic-gate
214f329b923SSean Wilcox<![%profile;[
215f329b923SSean Wilcox<!ELEMENT property
216f329b923SSean Wilcox	( count_list | integer_list | opaque_list | host_list | hostname_list |
217f6f041a2SAntonello Cruz	net_address_list | net_address_v4_list | net_address_v6_list |
218f6f041a2SAntonello Cruz	time_list | astring_list | ustring_list | boolean_list | fmri_list |
219f329b923SSean Wilcox	uri_list )? >
220f329b923SSean Wilcox
221f329b923SSean Wilcox<!ATTLIST property
222f329b923SSean Wilcox	name		CDATA #REQUIRED
223f329b923SSean Wilcox	type		( count | integer | opaque | host | hostname |
224f6f041a2SAntonello Cruz			net_address | net_address_v4 | net_address_v6 | time |
225f329b923SSean Wilcox			astring | ustring | boolean | fmri | uri ) #IMPLIED
226f329b923SSean Wilcox	override	( true | false ) "false" >
227f329b923SSean Wilcox]]>
228f329b923SSean Wilcox
229f329b923SSean Wilcox<![%manifest;[
2307c478bd9Sstevel@tonic-gate<!ELEMENT property
2317c478bd9Sstevel@tonic-gate	( count_list | integer_list | opaque_list | host_list | hostname_list |
232f6f041a2SAntonello Cruz	net_address_list | net_address_v4_list | net_address_v6_list |
233f6f041a2SAntonello Cruz	time_list | astring_list | ustring_list | boolean_list | fmri_list |
2347c478bd9Sstevel@tonic-gate	uri_list )? >
2357c478bd9Sstevel@tonic-gate
2367c478bd9Sstevel@tonic-gate<!ATTLIST property
2377c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
2387c478bd9Sstevel@tonic-gate	type		( count | integer | opaque | host | hostname |
239f6f041a2SAntonello Cruz			net_address | net_address_v4 | net_address_v6 | time |
2407c478bd9Sstevel@tonic-gate			astring | ustring | boolean | fmri | uri ) #REQUIRED
2417c478bd9Sstevel@tonic-gate	override	( true | false ) "false" >
242f329b923SSean Wilcox]]>
2437c478bd9Sstevel@tonic-gate
2447c478bd9Sstevel@tonic-gate<!--
2457c478bd9Sstevel@tonic-gate   propval
2467c478bd9Sstevel@tonic-gate
2477c478bd9Sstevel@tonic-gate     This element is for a singly valued property within a property
2487c478bd9Sstevel@tonic-gate     group.  List-valued properties must use the property element above.
2497c478bd9Sstevel@tonic-gate
2507c478bd9Sstevel@tonic-gate     Its attributes are
2517c478bd9Sstevel@tonic-gate
2527c478bd9Sstevel@tonic-gate	name	The name of this property.
2537c478bd9Sstevel@tonic-gate
2547c478bd9Sstevel@tonic-gate	type	The data type for this property.
2557c478bd9Sstevel@tonic-gate
2567c478bd9Sstevel@tonic-gate	value	The value for this property.  Must match type
2577c478bd9Sstevel@tonic-gate		restriction of type attribute.
2587c478bd9Sstevel@tonic-gate
2597c478bd9Sstevel@tonic-gate	override This value should replace any values already in the
2607c478bd9Sstevel@tonic-gate		repository.
2617c478bd9Sstevel@tonic-gate-->
2627c478bd9Sstevel@tonic-gate
263f329b923SSean Wilcox<![%profile;[
264f329b923SSean Wilcox<!ELEMENT propval EMPTY>
265f329b923SSean Wilcox
266f329b923SSean Wilcox<!ATTLIST propval
267f329b923SSean Wilcox	name		CDATA #REQUIRED
268f329b923SSean Wilcox	type		( count | integer | opaque | host | hostname |
269f6f041a2SAntonello Cruz			net_address | net_address_v4 | net_address_v6 | time |
270f6f041a2SAntonello Cruz			astring | ustring | boolean | fmri | uri ) #IMPLIED
271f329b923SSean Wilcox	value		CDATA #REQUIRED
272f329b923SSean Wilcox	override	( true | false ) "false" >
273f329b923SSean Wilcox]]>
274f329b923SSean Wilcox
275f329b923SSean Wilcox<![%manifest;[
2767c478bd9Sstevel@tonic-gate<!ELEMENT propval EMPTY>
2777c478bd9Sstevel@tonic-gate
2787c478bd9Sstevel@tonic-gate<!ATTLIST propval
2797c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
2807c478bd9Sstevel@tonic-gate	type		( count | integer | opaque | host | hostname |
281f6f041a2SAntonello Cruz			net_address | net_address_v4 | net_address_v6 | time |
282f6f041a2SAntonello Cruz			astring | ustring | boolean | fmri | uri ) #REQUIRED
2837c478bd9Sstevel@tonic-gate	value		CDATA #REQUIRED
2847c478bd9Sstevel@tonic-gate	override	( true | false ) "false" >
285f329b923SSean Wilcox]]>
2867c478bd9Sstevel@tonic-gate
2877c478bd9Sstevel@tonic-gate<!--
2887c478bd9Sstevel@tonic-gate  property_group
2897c478bd9Sstevel@tonic-gate
2907c478bd9Sstevel@tonic-gate    This element is for a set of related properties on a service or
2917c478bd9Sstevel@tonic-gate    instance.  It contains an optional stability element, as well as
2927c478bd9Sstevel@tonic-gate    zero or more property-containing elements.
2937c478bd9Sstevel@tonic-gate
2947c478bd9Sstevel@tonic-gate    Its attributes are
2957c478bd9Sstevel@tonic-gate
2967c478bd9Sstevel@tonic-gate	name	The name of this property group.
2977c478bd9Sstevel@tonic-gate
2987c478bd9Sstevel@tonic-gate	type	A category for this property group.  Groups of type
2997c478bd9Sstevel@tonic-gate		"framework", "implementation" or "template" are primarily
3007c478bd9Sstevel@tonic-gate		of interest to the service management facility, while
3017c478bd9Sstevel@tonic-gate		groups of type "application" are expected to be only of
3027c478bd9Sstevel@tonic-gate		interest to the service to which this group is attached.
3037c478bd9Sstevel@tonic-gate		Other types may be introduced using the service symbol
3047c478bd9Sstevel@tonic-gate		namespace conventions.
3057c478bd9Sstevel@tonic-gate
3067c478bd9Sstevel@tonic-gate	delete	If in the repository, this property group should be removed.
3077c478bd9Sstevel@tonic-gate-->
3087c478bd9Sstevel@tonic-gate
309f329b923SSean Wilcox<![%profile;[
310f329b923SSean Wilcox<!ELEMENT property_group
311f329b923SSean Wilcox	( stability?, ( propval | property )* )>
312f329b923SSean Wilcox
313f329b923SSean Wilcox<!ATTLIST property_group
314f329b923SSean Wilcox	name		CDATA #REQUIRED
315f329b923SSean Wilcox	type		CDATA #IMPLIED
316f329b923SSean Wilcox	delete		( true | false ) "false" >
317f329b923SSean Wilcox]]>
318f329b923SSean Wilcox
319f329b923SSean Wilcox<![%manifest;[
3207c478bd9Sstevel@tonic-gate<!ELEMENT property_group
3217c478bd9Sstevel@tonic-gate	( stability?, ( propval | property )* )>
3227c478bd9Sstevel@tonic-gate
3237c478bd9Sstevel@tonic-gate<!ATTLIST property_group
3247c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
3257c478bd9Sstevel@tonic-gate	type		CDATA #REQUIRED
3267c478bd9Sstevel@tonic-gate	delete		( true | false ) "false" >
327f329b923SSean Wilcox]]>
3287c478bd9Sstevel@tonic-gate
3297c478bd9Sstevel@tonic-gate<!--
3307c478bd9Sstevel@tonic-gate  service_fmri
3317c478bd9Sstevel@tonic-gate
3327c478bd9Sstevel@tonic-gate    This element defines a reference to a service FMRI (for either a
3337c478bd9Sstevel@tonic-gate    service or an instance).
3347c478bd9Sstevel@tonic-gate
3357c478bd9Sstevel@tonic-gate    Its attribute is
3367c478bd9Sstevel@tonic-gate
3377c478bd9Sstevel@tonic-gate	value	The FMRI.
3387c478bd9Sstevel@tonic-gate-->
3397c478bd9Sstevel@tonic-gate
3407c478bd9Sstevel@tonic-gate<!ELEMENT service_fmri EMPTY>
3417c478bd9Sstevel@tonic-gate
3427c478bd9Sstevel@tonic-gate<!ATTLIST service_fmri
3437c478bd9Sstevel@tonic-gate	value		CDATA #REQUIRED>
3447c478bd9Sstevel@tonic-gate
3457c478bd9Sstevel@tonic-gate<!-- Dependencies -->
3467c478bd9Sstevel@tonic-gate
3477c478bd9Sstevel@tonic-gate<!--
3487c478bd9Sstevel@tonic-gate  dependency
3497c478bd9Sstevel@tonic-gate
3507c478bd9Sstevel@tonic-gate    This element identifies a group of FMRIs upon which the service is
3517c478bd9Sstevel@tonic-gate    in some sense dependent.  Its interpretation is left to the
3527c478bd9Sstevel@tonic-gate    restarter to which a particular service instance is delegated.  It
3537c478bd9Sstevel@tonic-gate    contains a group of service FMRIs, as well as a block of properties.
3547c478bd9Sstevel@tonic-gate
3557c478bd9Sstevel@tonic-gate    Its attributes are
3567c478bd9Sstevel@tonic-gate
3577c478bd9Sstevel@tonic-gate	name	The name of this dependency.
3587c478bd9Sstevel@tonic-gate
3597c478bd9Sstevel@tonic-gate	grouping The relationship between the various FMRIs grouped
3607c478bd9Sstevel@tonic-gate		here; "require_all" of the FMRIs to be online, "require_any"
3617c478bd9Sstevel@tonic-gate		of the FMRIs to be online, or "exclude_all" of the FMRIs
3621f6eb021SLiane Praza		from being online or in maintenance for the dependency to
3631f6eb021SLiane Praza		be satisfied.  "optional_all" dependencies are satisfied
3641f6eb021SLiane Praza		when all of the FMRIs are either online or unable to come
3657c478bd9Sstevel@tonic-gate		online (because they are disabled, misconfigured, or one
3667c478bd9Sstevel@tonic-gate		of their dependencies is unable to come online).
3677c478bd9Sstevel@tonic-gate
3687c478bd9Sstevel@tonic-gate	restart_on The type of events from the FMRIs that the service should
3697c478bd9Sstevel@tonic-gate		be restarted for.  "error" restarts the service if the
3707c478bd9Sstevel@tonic-gate		dependency is restarted due to hardware fault.  "restart"
3717c478bd9Sstevel@tonic-gate		restarts the service if the dependency is restarted for
3727c478bd9Sstevel@tonic-gate		any reason, including hardware fault.  "refresh" restarts
3737c478bd9Sstevel@tonic-gate		the service if the dependency is refreshed or restarted for
3747c478bd9Sstevel@tonic-gate		any reason.  "none" will never restart the service due to
3757c478bd9Sstevel@tonic-gate		dependency state changes.
3767c478bd9Sstevel@tonic-gate
3777c478bd9Sstevel@tonic-gate	type	The type of dependency: on another service ('service'), on
3787c478bd9Sstevel@tonic-gate		a filesystem path ('path'), or another dependency type.
3797c478bd9Sstevel@tonic-gate
3807c478bd9Sstevel@tonic-gate	delete	This dependency should be deleted.
3817c478bd9Sstevel@tonic-gate-->
3827c478bd9Sstevel@tonic-gate
3837c478bd9Sstevel@tonic-gate<!ELEMENT dependency
3847c478bd9Sstevel@tonic-gate	( service_fmri*, stability?, ( propval | property )* ) >
3857c478bd9Sstevel@tonic-gate
3867c478bd9Sstevel@tonic-gate<!ATTLIST dependency
3877c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
3887c478bd9Sstevel@tonic-gate	grouping	( require_all | require_any | exclude_all |
3897c478bd9Sstevel@tonic-gate			optional_all ) #REQUIRED
3907c478bd9Sstevel@tonic-gate	restart_on	( error | restart | refresh | none ) #REQUIRED
3917c478bd9Sstevel@tonic-gate	type		CDATA #REQUIRED
3927c478bd9Sstevel@tonic-gate	delete		( true | false ) "false" >
3937c478bd9Sstevel@tonic-gate
3947c478bd9Sstevel@tonic-gate<!-- Dependents -->
3957c478bd9Sstevel@tonic-gate
3967c478bd9Sstevel@tonic-gate<!--
3977c478bd9Sstevel@tonic-gate  dependent
3987c478bd9Sstevel@tonic-gate
3997c478bd9Sstevel@tonic-gate    This element identifies a service which should depend on this service.  It
4007c478bd9Sstevel@tonic-gate    corresponds to a dependency in the named service.  The grouping and type
4017c478bd9Sstevel@tonic-gate    attributes of that dependency are implied to be "require_all" and
4027c478bd9Sstevel@tonic-gate    "service", respectively.
4037c478bd9Sstevel@tonic-gate
4047c478bd9Sstevel@tonic-gate    Its attributes are
4057c478bd9Sstevel@tonic-gate
4067c478bd9Sstevel@tonic-gate	name	The name of the dependency property group to create in the
4077c478bd9Sstevel@tonic-gate		dependent entity.
4087c478bd9Sstevel@tonic-gate
4097c478bd9Sstevel@tonic-gate	grouping The grouping relationship of the dependency property
4107c478bd9Sstevel@tonic-gate		group to create in the dependent entity.  See "grouping"
4117c478bd9Sstevel@tonic-gate		attribute on the dependency element.
4127c478bd9Sstevel@tonic-gate
4137c478bd9Sstevel@tonic-gate	restart_on The type of events from this service that the named service
4147c478bd9Sstevel@tonic-gate		should be restarted for.
4157c478bd9Sstevel@tonic-gate
4167c478bd9Sstevel@tonic-gate	delete	True if this dependent should be deleted.
4177c478bd9Sstevel@tonic-gate
4187c478bd9Sstevel@tonic-gate	override Whether to replace an existing dependent of the same name.
4197c478bd9Sstevel@tonic-gate
4207c478bd9Sstevel@tonic-gate-->
4217c478bd9Sstevel@tonic-gate
4227c478bd9Sstevel@tonic-gate<!ELEMENT dependent
4237c478bd9Sstevel@tonic-gate	( service_fmri, stability?, ( propval | property )* ) >
4247c478bd9Sstevel@tonic-gate
4257c478bd9Sstevel@tonic-gate<!ATTLIST dependent
4267c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
4277c478bd9Sstevel@tonic-gate	grouping	( require_all | require_any | exclude_all |
4287c478bd9Sstevel@tonic-gate			optional_all) #REQUIRED
4297c478bd9Sstevel@tonic-gate	restart_on	( error | restart | refresh | none) #REQUIRED
4307c478bd9Sstevel@tonic-gate	delete		( true | false ) "false"
4317c478bd9Sstevel@tonic-gate	override	( true | false ) "false" >
4327c478bd9Sstevel@tonic-gate
4337c478bd9Sstevel@tonic-gate<!-- Method execution context, security profile, and credential definitions -->
4347c478bd9Sstevel@tonic-gate
4357c478bd9Sstevel@tonic-gate<!--
4367c478bd9Sstevel@tonic-gate  envvar
4377c478bd9Sstevel@tonic-gate
4387c478bd9Sstevel@tonic-gate    An environment variable. It has two attributes:
4397c478bd9Sstevel@tonic-gate
4407c478bd9Sstevel@tonic-gate	name	The name of the environment variable.
4417c478bd9Sstevel@tonic-gate	value	The value of the environment variable.
4427c478bd9Sstevel@tonic-gate-->
4437c478bd9Sstevel@tonic-gate
4447c478bd9Sstevel@tonic-gate<!ELEMENT envvar EMPTY>
4457c478bd9Sstevel@tonic-gate
4467c478bd9Sstevel@tonic-gate<!ATTLIST envvar
4477c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
4487c478bd9Sstevel@tonic-gate	value		CDATA #REQUIRED >
4497c478bd9Sstevel@tonic-gate
4507c478bd9Sstevel@tonic-gate<!--
4517c478bd9Sstevel@tonic-gate  method_environment
4527c478bd9Sstevel@tonic-gate
4537c478bd9Sstevel@tonic-gate    This element defines the environment for a method. It has no
4547c478bd9Sstevel@tonic-gate    attributes, and one or more envvar child elements.
4557c478bd9Sstevel@tonic-gate-->
4567c478bd9Sstevel@tonic-gate
4577c478bd9Sstevel@tonic-gate<!ELEMENT method_environment (envvar+) >
4587c478bd9Sstevel@tonic-gate
4597c478bd9Sstevel@tonic-gate<!ATTLIST method_environment>
4607c478bd9Sstevel@tonic-gate
4617c478bd9Sstevel@tonic-gate<!--
4627c478bd9Sstevel@tonic-gate  method_profile
4637c478bd9Sstevel@tonic-gate
4647c478bd9Sstevel@tonic-gate    This element indicates which exec_attr(5) profile applies to the
4657c478bd9Sstevel@tonic-gate    method context being defined.
4667c478bd9Sstevel@tonic-gate
4677c478bd9Sstevel@tonic-gate    Its attribute is
4687c478bd9Sstevel@tonic-gate
4697c478bd9Sstevel@tonic-gate	name	The name of the profile.
4707c478bd9Sstevel@tonic-gate-->
4717c478bd9Sstevel@tonic-gate
4727c478bd9Sstevel@tonic-gate<!ELEMENT method_profile EMPTY>
4737c478bd9Sstevel@tonic-gate
4747c478bd9Sstevel@tonic-gate<!ATTLIST method_profile
4757c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED >
4767c478bd9Sstevel@tonic-gate
4777c478bd9Sstevel@tonic-gate<!--
4787c478bd9Sstevel@tonic-gate  method_credential
4797c478bd9Sstevel@tonic-gate
4807c478bd9Sstevel@tonic-gate    This element specifies credential attributes for the execution
4817c478bd9Sstevel@tonic-gate    method to use.
4827c478bd9Sstevel@tonic-gate
4837c478bd9Sstevel@tonic-gate    Its attributes are
4847c478bd9Sstevel@tonic-gate
4857c478bd9Sstevel@tonic-gate	user	The user ID, in numeric or text form.
4867c478bd9Sstevel@tonic-gate
4877c478bd9Sstevel@tonic-gate	group	The group ID, in numeric or text form.  If absent or
4887c478bd9Sstevel@tonic-gate		":default", the group associated with the user in the
4897c478bd9Sstevel@tonic-gate		passwd database.
4907c478bd9Sstevel@tonic-gate
4917c478bd9Sstevel@tonic-gate	supp_groups Supplementary group IDs to be associated with the
4927c478bd9Sstevel@tonic-gate		method, separated by commas or spaces.  If absent or
4937c478bd9Sstevel@tonic-gate		":default", initgroups(3C) will be used.
4947c478bd9Sstevel@tonic-gate
4957c478bd9Sstevel@tonic-gate	privileges An optional string specifying the privilege set.
4967c478bd9Sstevel@tonic-gate
4977c478bd9Sstevel@tonic-gate	limit_privileges An optional string specifying the limit
4987c478bd9Sstevel@tonic-gate		privilege set.
4997c478bd9Sstevel@tonic-gate-->
5007c478bd9Sstevel@tonic-gate
5017c478bd9Sstevel@tonic-gate<!ELEMENT method_credential EMPTY>
5027c478bd9Sstevel@tonic-gate
5037c478bd9Sstevel@tonic-gate<!ATTLIST method_credential
5047c478bd9Sstevel@tonic-gate	user		CDATA #REQUIRED
50513d8aaa1SSean Wilcox	group		CDATA #IMPLIED
50613d8aaa1SSean Wilcox	supp_groups	CDATA #IMPLIED
50713d8aaa1SSean Wilcox	privileges	CDATA #IMPLIED
50813d8aaa1SSean Wilcox	limit_privileges CDATA #IMPLIED >
5097c478bd9Sstevel@tonic-gate
5107c478bd9Sstevel@tonic-gate<!--
5117c478bd9Sstevel@tonic-gate  method_context
5127c478bd9Sstevel@tonic-gate
5137c478bd9Sstevel@tonic-gate    This element combines credential and resource management attributes
5147c478bd9Sstevel@tonic-gate    for execution methods.  It may contain a method_environment, or
5157c478bd9Sstevel@tonic-gate    a method_profile or method_credential element.
5167c478bd9Sstevel@tonic-gate
5177c478bd9Sstevel@tonic-gate    Its attributes are
5187c478bd9Sstevel@tonic-gate
5197c478bd9Sstevel@tonic-gate	working_directory The home directory to launch the method from.
5207c478bd9Sstevel@tonic-gate		":default" can be used as a token to indicate use of the
5217c478bd9Sstevel@tonic-gate		user specified by the credential or profile specified.
5227c478bd9Sstevel@tonic-gate
5237c478bd9Sstevel@tonic-gate	project	The project ID, in numeric or text form.  ":default" can
5247c478bd9Sstevel@tonic-gate		be used as a token to indicate use of the project
5257c478bd9Sstevel@tonic-gate		identified by getdefaultproj(3PROJECT) for the non-root
5267c478bd9Sstevel@tonic-gate		user specified by the credential or profile specified.
5277c478bd9Sstevel@tonic-gate		If the user is root, ":default" designates the project
5287c478bd9Sstevel@tonic-gate		the restarter is running in.
5297c478bd9Sstevel@tonic-gate
5307c478bd9Sstevel@tonic-gate	resource_pool The resource pool name to launch the method on.
5317c478bd9Sstevel@tonic-gate		":default" can be used as a token to indicate use of the
5327c478bd9Sstevel@tonic-gate		pool specified in the project(4) entry given in the
5337c478bd9Sstevel@tonic-gate		"project" attribute above.
5347c478bd9Sstevel@tonic-gate-->
5357c478bd9Sstevel@tonic-gate<!ELEMENT method_context
5367c478bd9Sstevel@tonic-gate	( (method_profile | method_credential)?, method_environment? ) >
5377c478bd9Sstevel@tonic-gate
5387c478bd9Sstevel@tonic-gate<!ATTLIST method_context
53913d8aaa1SSean Wilcox	working_directory	CDATA #IMPLIED
54013d8aaa1SSean Wilcox	project			CDATA #IMPLIED
54113d8aaa1SSean Wilcox	resource_pool		CDATA #IMPLIED >
5427c478bd9Sstevel@tonic-gate
5437c478bd9Sstevel@tonic-gate<!-- Restarter delegation, methods, and monitors -->
5447c478bd9Sstevel@tonic-gate
5457c478bd9Sstevel@tonic-gate<!--
5467c478bd9Sstevel@tonic-gate  exec_method
5477c478bd9Sstevel@tonic-gate
5487c478bd9Sstevel@tonic-gate    This element describes one of the methods used by the designated
5497c478bd9Sstevel@tonic-gate    restarter to act on the service instance.  Its interpretation is
5507c478bd9Sstevel@tonic-gate    left to the restarter to which a particular service instance is
5517c478bd9Sstevel@tonic-gate    delegated.  It contains a set of attributes, an optional method
5527c478bd9Sstevel@tonic-gate    context, and an optional stability element for the optional
5537c478bd9Sstevel@tonic-gate    properties that can be included.
5547c478bd9Sstevel@tonic-gate
5557c478bd9Sstevel@tonic-gate    Its attributes are
5567c478bd9Sstevel@tonic-gate
5577c478bd9Sstevel@tonic-gate	type	The type of method, either "method" or "monitor".
5587c478bd9Sstevel@tonic-gate
5597c478bd9Sstevel@tonic-gate	name	Name of this execution method.  The method names are
5607c478bd9Sstevel@tonic-gate		usually a defined interface of the restarter to which an
5617c478bd9Sstevel@tonic-gate		instance of this service is delegated.
5627c478bd9Sstevel@tonic-gate
5637c478bd9Sstevel@tonic-gate	exec	The string identifying the action to take.  For
5647c478bd9Sstevel@tonic-gate		svc.startd(1M), this is a string suitable to pass to
5657c478bd9Sstevel@tonic-gate		exec(2).
5667c478bd9Sstevel@tonic-gate
5677c478bd9Sstevel@tonic-gate	timeout_seconds [integer] Duration, in seconds, to wait for this
5687c478bd9Sstevel@tonic-gate		method to complete.  A '0' or '-1' denotes an infinite
5697c478bd9Sstevel@tonic-gate		timeout.
5707c478bd9Sstevel@tonic-gate
5717c478bd9Sstevel@tonic-gate	delete	If in the repository, the property group for this method
5727c478bd9Sstevel@tonic-gate		should be removed.
5737c478bd9Sstevel@tonic-gate-->
5747c478bd9Sstevel@tonic-gate
5757c478bd9Sstevel@tonic-gate<!ELEMENT exec_method
5767c478bd9Sstevel@tonic-gate	( method_context?, stability?, ( propval | property )* ) >
5777c478bd9Sstevel@tonic-gate
5787c478bd9Sstevel@tonic-gate<!ATTLIST exec_method
5797c478bd9Sstevel@tonic-gate	type		( method | monitor ) #REQUIRED
5807c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
5817c478bd9Sstevel@tonic-gate	exec		CDATA #REQUIRED
5827c478bd9Sstevel@tonic-gate	timeout_seconds	CDATA #REQUIRED
5837c478bd9Sstevel@tonic-gate	delete		( true | false ) "false" >
5847c478bd9Sstevel@tonic-gate
5857c478bd9Sstevel@tonic-gate<!--
5867c478bd9Sstevel@tonic-gate  restarter
5877c478bd9Sstevel@tonic-gate
5887c478bd9Sstevel@tonic-gate    A flag element identifying the restarter to which this service or
5897c478bd9Sstevel@tonic-gate    service instance is delegated.  Contains the FMRI naming the
5907c478bd9Sstevel@tonic-gate    delegated restarter.
5917c478bd9Sstevel@tonic-gate
5927c478bd9Sstevel@tonic-gate    This element has no attributes.
5937c478bd9Sstevel@tonic-gate-->
5947c478bd9Sstevel@tonic-gate
5957c478bd9Sstevel@tonic-gate<!ELEMENT restarter
5967c478bd9Sstevel@tonic-gate	( service_fmri ) >
5977c478bd9Sstevel@tonic-gate
5987c478bd9Sstevel@tonic-gate<!ATTLIST restarter>
5997c478bd9Sstevel@tonic-gate
6007c478bd9Sstevel@tonic-gate<!--
6017c478bd9Sstevel@tonic-gate  Templates
6027c478bd9Sstevel@tonic-gate-->
6037c478bd9Sstevel@tonic-gate
6047c478bd9Sstevel@tonic-gate<!--
6057c478bd9Sstevel@tonic-gate  doc_link
6067c478bd9Sstevel@tonic-gate
6077c478bd9Sstevel@tonic-gate    The doc_link relates a resource described by the given URI to the
6087c478bd9Sstevel@tonic-gate    service described by the containing template.  The resource is
6097c478bd9Sstevel@tonic-gate    expected to be a documentation or elucidatory reference of some
6107c478bd9Sstevel@tonic-gate    kind.
6117c478bd9Sstevel@tonic-gate
6127c478bd9Sstevel@tonic-gate    Its attributes are
6137c478bd9Sstevel@tonic-gate
6147c478bd9Sstevel@tonic-gate      name      A label for this resource.
6157c478bd9Sstevel@tonic-gate
6167c478bd9Sstevel@tonic-gate      uri       A URI to the resource.
6177c478bd9Sstevel@tonic-gate-->
6187c478bd9Sstevel@tonic-gate
6197c478bd9Sstevel@tonic-gate<!ELEMENT doc_link EMPTY>
6207c478bd9Sstevel@tonic-gate
6217c478bd9Sstevel@tonic-gate<!ATTLIST doc_link
6227c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
6237c478bd9Sstevel@tonic-gate	uri		CDATA #REQUIRED >
6247c478bd9Sstevel@tonic-gate
6257c478bd9Sstevel@tonic-gate<!--
6267c478bd9Sstevel@tonic-gate  manpage
6277c478bd9Sstevel@tonic-gate
6287c478bd9Sstevel@tonic-gate    The manpage element connects the reference manual page to the
6297c478bd9Sstevel@tonic-gate    template's service.
6307c478bd9Sstevel@tonic-gate
6317c478bd9Sstevel@tonic-gate    Its attributes are
6327c478bd9Sstevel@tonic-gate
6337c478bd9Sstevel@tonic-gate      title     The manual page title.
6347c478bd9Sstevel@tonic-gate
6357c478bd9Sstevel@tonic-gate      section   The manual page's section.
6367c478bd9Sstevel@tonic-gate
6377c478bd9Sstevel@tonic-gate      manpath   The MANPATH environment variable, as described in man(1)
6387c478bd9Sstevel@tonic-gate                that is required to reach the named manual page
6397c478bd9Sstevel@tonic-gate-->
6407c478bd9Sstevel@tonic-gate
6417c478bd9Sstevel@tonic-gate<!ELEMENT manpage EMPTY>
6427c478bd9Sstevel@tonic-gate
6437c478bd9Sstevel@tonic-gate<!ATTLIST manpage
6447c478bd9Sstevel@tonic-gate	title		CDATA #REQUIRED
6457c478bd9Sstevel@tonic-gate	section		CDATA #REQUIRED
6467c478bd9Sstevel@tonic-gate	manpath		CDATA ":default" >
6477c478bd9Sstevel@tonic-gate
6487c478bd9Sstevel@tonic-gate<!--
6497c478bd9Sstevel@tonic-gate  documentation
6507c478bd9Sstevel@tonic-gate
6517c478bd9Sstevel@tonic-gate    The documentation element groups an arbitrary number of doc_link
6527c478bd9Sstevel@tonic-gate    and manpage references.
6537c478bd9Sstevel@tonic-gate
6547c478bd9Sstevel@tonic-gate    It has no attributes.
6557c478bd9Sstevel@tonic-gate-->
6567c478bd9Sstevel@tonic-gate
6577c478bd9Sstevel@tonic-gate<!ELEMENT documentation
6587c478bd9Sstevel@tonic-gate	( doc_link | manpage )* >
6597c478bd9Sstevel@tonic-gate
6607c478bd9Sstevel@tonic-gate<!ATTLIST documentation>
6617c478bd9Sstevel@tonic-gate
6627c478bd9Sstevel@tonic-gate<!--
6637c478bd9Sstevel@tonic-gate  loctext
6647c478bd9Sstevel@tonic-gate
6657c478bd9Sstevel@tonic-gate    The loctext element is a container for localized text.
6667c478bd9Sstevel@tonic-gate
6677c478bd9Sstevel@tonic-gate    Its sole attribute is
6687c478bd9Sstevel@tonic-gate
6697c478bd9Sstevel@tonic-gate	xml:lang The name of the locale, in the form accepted by LC_ALL,
6707c478bd9Sstevel@tonic-gate		etc.  See locale(5).
6717c478bd9Sstevel@tonic-gate-->
6727c478bd9Sstevel@tonic-gate<!ELEMENT loctext
6737c478bd9Sstevel@tonic-gate        (#PCDATA) >
6747c478bd9Sstevel@tonic-gate
6757c478bd9Sstevel@tonic-gate<!ATTLIST loctext
6767c478bd9Sstevel@tonic-gate        xml:lang	CDATA #REQUIRED >
6777c478bd9Sstevel@tonic-gate
6787c478bd9Sstevel@tonic-gate<!--
6797c478bd9Sstevel@tonic-gate  description
6807c478bd9Sstevel@tonic-gate
6817c478bd9Sstevel@tonic-gate    The description holds a set of potentially longer, localized strings that
6825703ae89Stalley    consist of a short description of the service.
6837c478bd9Sstevel@tonic-gate
6847c478bd9Sstevel@tonic-gate    The description has no attributes.
6857c478bd9Sstevel@tonic-gate-->
6867c478bd9Sstevel@tonic-gate<!ELEMENT description
6877c478bd9Sstevel@tonic-gate        ( loctext+ ) >
6887c478bd9Sstevel@tonic-gate
6895703ae89Stalley<!ATTLIST description>
6907c478bd9Sstevel@tonic-gate
6917c478bd9Sstevel@tonic-gate<!--
6927c478bd9Sstevel@tonic-gate  common_name
6937c478bd9Sstevel@tonic-gate
6947c478bd9Sstevel@tonic-gate    The common_name holds a set of short, localized strings that
6957c478bd9Sstevel@tonic-gate    represent a well-known name for the service in the given locale.
6967c478bd9Sstevel@tonic-gate
6977c478bd9Sstevel@tonic-gate    The common_name has no attributes.
6987c478bd9Sstevel@tonic-gate-->
6997c478bd9Sstevel@tonic-gate<!ELEMENT common_name
7007c478bd9Sstevel@tonic-gate        ( loctext+ ) >
7017c478bd9Sstevel@tonic-gate
7027c478bd9Sstevel@tonic-gate<!ATTLIST common_name>
7037c478bd9Sstevel@tonic-gate
7047c478bd9Sstevel@tonic-gate<!--
7051f6eb021SLiane Praza  units
7061f6eb021SLiane Praza
7071f6eb021SLiane Praza    The units a numerical property is expressed in.
7081f6eb021SLiane Praza-->
7091f6eb021SLiane Praza
7101f6eb021SLiane Praza<!ELEMENT units
7111f6eb021SLiane Praza	( loctext+ ) >
7121f6eb021SLiane Praza
7131f6eb021SLiane Praza<!ATTLIST units>
7141f6eb021SLiane Praza
7151f6eb021SLiane Praza<!--
7161f6eb021SLiane Praza  visibility
7171f6eb021SLiane Praza
7181f6eb021SLiane Praza    Expresses how a property is typically accessed.  This isn't
7191f6eb021SLiane Praza    intended as access control, but as an indicator as to how a
7201f6eb021SLiane Praza    property is used.
7211f6eb021SLiane Praza
7221f6eb021SLiane Praza    Its attributes are:
7231f6eb021SLiane Praza
7241f6eb021SLiane Praza      value     'hidden', 'readonly', or 'readwrite' indicating that
7251f6eb021SLiane Praza		the property should be hidden from the user, shown but
7261f6eb021SLiane Praza		read-only, or modifiable.
7271f6eb021SLiane Praza-->
7281f6eb021SLiane Praza
7291f6eb021SLiane Praza<!ELEMENT visibility EMPTY>
7301f6eb021SLiane Praza
7311f6eb021SLiane Praza<!ATTLIST visibility
7321f6eb021SLiane Praza	value	( hidden | readonly | readwrite ) #REQUIRED >
7331f6eb021SLiane Praza
7341f6eb021SLiane Praza<!--
7351f6eb021SLiane Praza  value
7361f6eb021SLiane Praza
7371f6eb021SLiane Praza    Describes a legal value for a property value, and optionally contains a
7381f6eb021SLiane Praza    human-readable name and description for the specified property
7391f6eb021SLiane Praza    value.
7401f6eb021SLiane Praza
7411f6eb021SLiane Praza    Its attributes are:
7421f6eb021SLiane Praza
7431f6eb021SLiane Praza      name	A string representation of the value.
7441f6eb021SLiane Praza-->
7451f6eb021SLiane Praza
7461f6eb021SLiane Praza<!ELEMENT value
7471f6eb021SLiane Praza	( common_name?, description? ) >
7481f6eb021SLiane Praza
7491f6eb021SLiane Praza<!ATTLIST value
7501f6eb021SLiane Praza	name	CDATA #REQUIRED >
7511f6eb021SLiane Praza
7521f6eb021SLiane Praza<!--
7531f6eb021SLiane Praza  values
7541f6eb021SLiane Praza
7551f6eb021SLiane Praza    Human-readable names and descriptions for valid values of a property.
7561f6eb021SLiane Praza-->
7571f6eb021SLiane Praza
7581f6eb021SLiane Praza<!ELEMENT values
7591f6eb021SLiane Praza	(value+) >
7601f6eb021SLiane Praza
7611f6eb021SLiane Praza<!ATTLIST values>
7621f6eb021SLiane Praza
7631f6eb021SLiane Praza<!--
7641f6eb021SLiane Praza  cardinality
7651f6eb021SLiane Praza
7661f6eb021SLiane Praza    Places a constraint on the number of values the property can take
7671f6eb021SLiane Praza    on.
7681f6eb021SLiane Praza
7691f6eb021SLiane Praza    Its attributes are:
7701f6eb021SLiane Praza	min	minimum number of values
7711f6eb021SLiane Praza	max	maximum number of values
7721f6eb021SLiane Praza
7731f6eb021SLiane Praza    Both attributes are optional.  If min is not specified, it defaults to
7741f6eb021SLiane Praza    0.  If max is not specified it indicates an unlimited number of values.
7751f6eb021SLiane Praza    If neither is specified this indicates 0 or more values.
7761f6eb021SLiane Praza-->
7771f6eb021SLiane Praza
7781f6eb021SLiane Praza<!ELEMENT cardinality EMPTY>
7791f6eb021SLiane Praza
7801f6eb021SLiane Praza<!ATTLIST cardinality
7811f6eb021SLiane Praza	min	CDATA "0"
7821f6eb021SLiane Praza	max	CDATA "18446744073709551615">
7831f6eb021SLiane Praza
7841f6eb021SLiane Praza<!--
7851f6eb021SLiane Praza  internal_separators
7861f6eb021SLiane Praza
7871f6eb021SLiane Praza    Indicates the separators used within a property's value used to
7881f6eb021SLiane Praza    separate the actual values.  Used in situations where multiple
7891f6eb021SLiane Praza    values are packed into a single property value instead of using a
7901f6eb021SLiane Praza    multi-valued property.
7911f6eb021SLiane Praza-->
7921f6eb021SLiane Praza
7931f6eb021SLiane Praza<!ELEMENT internal_separators
7941f6eb021SLiane Praza	(#PCDATA) >
7951f6eb021SLiane Praza
7961f6eb021SLiane Praza<!ATTLIST internal_separators>
7971f6eb021SLiane Praza
7981f6eb021SLiane Praza<!--
7991f6eb021SLiane Praza  range
8001f6eb021SLiane Praza
8011f6eb021SLiane Praza    Indicates a range of possible integer values.
8021f6eb021SLiane Praza
8031f6eb021SLiane Praza    Its attributes are:
8041f6eb021SLiane Praza
8051f6eb021SLiane Praza      min	The minimum value of the range (inclusive).
8061f6eb021SLiane Praza      max	The maximum value of the range (inclusive).
8071f6eb021SLiane Praza-->
8081f6eb021SLiane Praza
8091f6eb021SLiane Praza<!ELEMENT range EMPTY>
8101f6eb021SLiane Praza
8111f6eb021SLiane Praza<!ATTLIST range
8121f6eb021SLiane Praza	min	CDATA #REQUIRED
8131f6eb021SLiane Praza	max	CDATA #REQUIRED >
8141f6eb021SLiane Praza
8151f6eb021SLiane Praza<!--
8161f6eb021SLiane Praza  constraints
8171f6eb021SLiane Praza
8181f6eb021SLiane Praza    Provides a set of constraints on the values a property can take on.
8191f6eb021SLiane Praza-->
8201f6eb021SLiane Praza
8211f6eb021SLiane Praza<!ELEMENT constraints
8221f6eb021SLiane Praza	( value*, range* ) >
8231f6eb021SLiane Praza<!ATTLIST constraints>
8241f6eb021SLiane Praza
8251f6eb021SLiane Praza<!--
8261f6eb021SLiane Praza  include_values
8271f6eb021SLiane Praza
8281f6eb021SLiane Praza    Includes an entire set of values in the choices block.
8291f6eb021SLiane Praza
8301f6eb021SLiane Praza    Its attributes are:
8311f6eb021SLiane Praza
8321f6eb021SLiane Praza	type    Either "constraints" or "values", indicating an
8331f6eb021SLiane Praza		inclusion of all values allowed by the property's
8341f6eb021SLiane Praza		constraints or all values for which there are
8351f6eb021SLiane Praza		human-readable names and descriptions, respectively.
8361f6eb021SLiane Praza-->
8371f6eb021SLiane Praza
8381f6eb021SLiane Praza<!ELEMENT include_values EMPTY>
8391f6eb021SLiane Praza
8401f6eb021SLiane Praza<!ATTLIST include_values
8411f6eb021SLiane Praza	type	( constraints | values ) #REQUIRED >
8421f6eb021SLiane Praza
8431f6eb021SLiane Praza<!--
8441f6eb021SLiane Praza  choices
8451f6eb021SLiane Praza
8461f6eb021SLiane Praza    Provides a set of common choices for the values a property can take
8471f6eb021SLiane Praza    on.  Useful in those cases where the possibilities are unenumerable
8481f6eb021SLiane Praza    or merely inconveniently legion, and a manageable subset is desired
8491f6eb021SLiane Praza    for presentation in a user interface.
8501f6eb021SLiane Praza-->
8511f6eb021SLiane Praza
8521f6eb021SLiane Praza<!ELEMENT choices
8531f6eb021SLiane Praza	( value*, range*, include_values* ) >
8541f6eb021SLiane Praza
8551f6eb021SLiane Praza<!ATTLIST choices>
8561f6eb021SLiane Praza
8571f6eb021SLiane Praza<!--
8581f6eb021SLiane Praza  prop_pattern
8591f6eb021SLiane Praza
8601f6eb021SLiane Praza
8611f6eb021SLiane Praza    The prop_pattern describes one property of the enclosing property group
8621f6eb021SLiane Praza    pattern.
8631f6eb021SLiane Praza
8641f6eb021SLiane Praza    Its attributes are:
8651f6eb021SLiane Praza
8661f6eb021SLiane Praza	name    The property's name.
8671f6eb021SLiane Praza	type    The property's type.
8681f6eb021SLiane Praza	required
8691f6eb021SLiane Praza		If the property group is present, this property is required.
8701f6eb021SLiane Praza
8711f6eb021SLiane Praza	type can be omitted if required is false.
8721f6eb021SLiane Praza-->
8731f6eb021SLiane Praza
8741f6eb021SLiane Praza<!ELEMENT prop_pattern
8751f6eb021SLiane Praza	( common_name?, description?, units?, visibility?, cardinality?,
8761f6eb021SLiane Praza	  internal_separators?, values?, constraints?, choices? ) >
8771f6eb021SLiane Praza
8781f6eb021SLiane Praza<!ATTLIST prop_pattern
8791f6eb021SLiane Praza	name		CDATA	#REQUIRED
8801f6eb021SLiane Praza	type		( count | integer | opaque | host | hostname |
881f6f041a2SAntonello Cruz			net_address | net_address_v4 | net_address_v6 | time |
882f6f041a2SAntonello Cruz			astring | ustring | boolean | fmri | uri ) #IMPLIED
8831f6eb021SLiane Praza	required	( true | false )	"false" >
8841f6eb021SLiane Praza
8851f6eb021SLiane Praza<!--
8861f6eb021SLiane Praza  pg_pattern
8871f6eb021SLiane Praza
8881f6eb021SLiane Praza    The pg_pattern describes one property group.
8891f6eb021SLiane Praza    Depending on the element's attributes, these descriptions may apply
8901f6eb021SLiane Praza    to just the enclosing service/instance, instances of the enclosing
8911f6eb021SLiane Praza    service, delegates of the service (assuming it is a restarter), or
8921f6eb021SLiane Praza    all services.
8931f6eb021SLiane Praza
8941f6eb021SLiane Praza    Its attributes are:
8951f6eb021SLiane Praza
8961f6eb021SLiane Praza	name    The property group's name.  If not specified, it
8971f6eb021SLiane Praza		matches all property groups with the specified type.
8981f6eb021SLiane Praza	type    The property group's type.  If not specified, it
8991f6eb021SLiane Praza		matches all property groups with the specified name.
9001f6eb021SLiane Praza	required
9011f6eb021SLiane Praza		If the property group is required.
9021f6eb021SLiane Praza	target	The scope of the pattern, which may be all, delegate,
9031f6eb021SLiane Praza		instance, or this.  'all' is reserved for framework use
9041f6eb021SLiane Praza		and applies the template to all services on the system.
9051f6eb021SLiane Praza		'delegate' is reserved for restarters, and means the
9061f6eb021SLiane Praza		template applies to all services which use the restarter.
9071f6eb021SLiane Praza		'this' would refer to the defining service or instance.
9081f6eb021SLiane Praza		'instance' can only be used in a service's template block,
9091f6eb021SLiane Praza		and means the definition applies to all instances of this
9101f6eb021SLiane Praza		service.
9111f6eb021SLiane Praza
9121f6eb021SLiane Praza-->
9131f6eb021SLiane Praza
9141f6eb021SLiane Praza<!ELEMENT pg_pattern
9151f6eb021SLiane Praza	( common_name?, description?, prop_pattern* ) >
9161f6eb021SLiane Praza
9171f6eb021SLiane Praza<!ATTLIST pg_pattern
9181f6eb021SLiane Praza	name		CDATA	""
9191f6eb021SLiane Praza	type		CDATA	""
9201f6eb021SLiane Praza	required	( true | false )	"false"
9211f6eb021SLiane Praza	target		( this | instance | delegate | all )	"this" >
9221f6eb021SLiane Praza
9231f6eb021SLiane Praza<!--
9247c478bd9Sstevel@tonic-gate  template
9257c478bd9Sstevel@tonic-gate
9267c478bd9Sstevel@tonic-gate    The template contains a collection of metadata about the service.
9277c478bd9Sstevel@tonic-gate    It contains a localizable string that serves as a common,
9287c478bd9Sstevel@tonic-gate    human-readable name for the service.  (This name should be less than
9297c478bd9Sstevel@tonic-gate    60 characters in a single byte locale.)  The template may optionally
9307c478bd9Sstevel@tonic-gate    contain a longer localizable description of the service, a
9317c478bd9Sstevel@tonic-gate    collection of links to documentation, either in the form of manual
9327c478bd9Sstevel@tonic-gate    pages or in the form of URI specifications to external documentation
9337c478bd9Sstevel@tonic-gate    sources (such as docs.sun.com).
9347c478bd9Sstevel@tonic-gate
9357c478bd9Sstevel@tonic-gate    The template has no attributes.
9367c478bd9Sstevel@tonic-gate-->
9377c478bd9Sstevel@tonic-gate<!ELEMENT template
9381f6eb021SLiane Praza        ( common_name, description?, documentation?, pg_pattern* ) >
9397c478bd9Sstevel@tonic-gate
9407c478bd9Sstevel@tonic-gate<!ATTLIST template>
9417c478bd9Sstevel@tonic-gate
942*f6e214c7SGavin Maltby<!-- Notification Parameters -->
943*f6e214c7SGavin Maltby
944*f6e214c7SGavin Maltby<!ELEMENT paramval EMPTY>
945*f6e214c7SGavin Maltby
946*f6e214c7SGavin Maltby<!ATTLIST paramval
947*f6e214c7SGavin Maltby	name		CDATA #REQUIRED
948*f6e214c7SGavin Maltby	value		CDATA #REQUIRED>
949*f6e214c7SGavin Maltby
950*f6e214c7SGavin Maltby<!ELEMENT parameter
951*f6e214c7SGavin Maltby	( value_node* )>
952*f6e214c7SGavin Maltby
953*f6e214c7SGavin Maltby<!ATTLIST parameter
954*f6e214c7SGavin Maltby	name		CDATA #REQUIRED>
955*f6e214c7SGavin Maltby
956*f6e214c7SGavin Maltby<!ELEMENT event EMPTY>
957*f6e214c7SGavin Maltby
958*f6e214c7SGavin Maltby<!ATTLIST event
959*f6e214c7SGavin Maltby	value		CDATA #REQUIRED>
960*f6e214c7SGavin Maltby
961*f6e214c7SGavin Maltby<!ELEMENT type
962*f6e214c7SGavin Maltby	( ( parameter | paramval )* )>
963*f6e214c7SGavin Maltby
964*f6e214c7SGavin Maltby<!ATTLIST type
965*f6e214c7SGavin Maltby	name		CDATA #REQUIRED
966*f6e214c7SGavin Maltby	active		( true | false ) "true" >
967*f6e214c7SGavin Maltby
968*f6e214c7SGavin Maltby<!--
969*f6e214c7SGavin Maltby  notification parameters
970*f6e214c7SGavin Maltby
971*f6e214c7SGavin Maltby    This element sets the notification parameters for Software Events and
972*f6e214c7SGavin Maltby    Fault Management problem lifecycle events.
973*f6e214c7SGavin Maltby-->
974*f6e214c7SGavin Maltby
975*f6e214c7SGavin Maltby<!ELEMENT notification_parameters
976*f6e214c7SGavin Maltby	( event, type+ )>
977*f6e214c7SGavin Maltby
978*f6e214c7SGavin Maltby<!ATTLIST notification_parameters>
979*f6e214c7SGavin Maltby
9807c478bd9Sstevel@tonic-gate<!-- Services and instances -->
9817c478bd9Sstevel@tonic-gate
9827c478bd9Sstevel@tonic-gate<!--
9837c478bd9Sstevel@tonic-gate  create_default_instance
9847c478bd9Sstevel@tonic-gate
9857c478bd9Sstevel@tonic-gate    A flag element indicating that an otherwise empty default instance
9867c478bd9Sstevel@tonic-gate    of this service (named "default") should be created at install, with
9877c478bd9Sstevel@tonic-gate    its enabled property set as given.
9887c478bd9Sstevel@tonic-gate
9897c478bd9Sstevel@tonic-gate    Its attribute is
9907c478bd9Sstevel@tonic-gate
9917c478bd9Sstevel@tonic-gate	enabled	[boolean] The initial value for the enabled state of
9927c478bd9Sstevel@tonic-gate		this instance.
9937c478bd9Sstevel@tonic-gate-->
9947c478bd9Sstevel@tonic-gate
9957c478bd9Sstevel@tonic-gate<!ELEMENT create_default_instance EMPTY >
9967c478bd9Sstevel@tonic-gate
9977c478bd9Sstevel@tonic-gate<!ATTLIST create_default_instance
9987c478bd9Sstevel@tonic-gate	enabled		( true | false ) #REQUIRED >
9997c478bd9Sstevel@tonic-gate
10007c478bd9Sstevel@tonic-gate<!--
10017c478bd9Sstevel@tonic-gate  single_instance
10027c478bd9Sstevel@tonic-gate
10037c478bd9Sstevel@tonic-gate    A flag element stating that this service can only have a single
10047c478bd9Sstevel@tonic-gate    instance on a particular system.
10057c478bd9Sstevel@tonic-gate-->
10067c478bd9Sstevel@tonic-gate
10077c478bd9Sstevel@tonic-gate<!ELEMENT single_instance EMPTY>
10087c478bd9Sstevel@tonic-gate
10097c478bd9Sstevel@tonic-gate<!ATTLIST single_instance>
10107c478bd9Sstevel@tonic-gate
10117c478bd9Sstevel@tonic-gate<!--
10127c478bd9Sstevel@tonic-gate  instance
10137c478bd9Sstevel@tonic-gate
10147c478bd9Sstevel@tonic-gate    The service instance is the object representing a software component
10157c478bd9Sstevel@tonic-gate    that will run on the system if enabled.  It contains an enabled
10167c478bd9Sstevel@tonic-gate    element, a set of dependencies on other services, potentially
10177c478bd9Sstevel@tonic-gate    customized methods or configuration data, an optional method
10187c478bd9Sstevel@tonic-gate    context, and a pointer to its restarter.  (If no restarter is
10197c478bd9Sstevel@tonic-gate    specified, the master restarter, svc.startd(1M), is assumed to be
10207c478bd9Sstevel@tonic-gate    responsible for the service.)
10217c478bd9Sstevel@tonic-gate
10227c478bd9Sstevel@tonic-gate    Its attributes are
10237c478bd9Sstevel@tonic-gate
10247c478bd9Sstevel@tonic-gate	name	The canonical name for this instance of the service.
10257c478bd9Sstevel@tonic-gate
10267c478bd9Sstevel@tonic-gate	enabled	[boolean] The initial value for the enabled state of
10277c478bd9Sstevel@tonic-gate		this instance.
10287c478bd9Sstevel@tonic-gate-->
10297c478bd9Sstevel@tonic-gate
10307c478bd9Sstevel@tonic-gate<!ELEMENT instance
10317c478bd9Sstevel@tonic-gate	( restarter?, dependency*, dependent*, method_context?,
1032*f6e214c7SGavin Maltby	exec_method*, notification_parameters*, property_group*,
1033*f6e214c7SGavin Maltby	template? ) >
10347c478bd9Sstevel@tonic-gate
10357c478bd9Sstevel@tonic-gate<!ATTLIST instance
10367c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
10377c478bd9Sstevel@tonic-gate	enabled		( true | false ) #REQUIRED >
10387c478bd9Sstevel@tonic-gate
10397c478bd9Sstevel@tonic-gate<!--
10407c478bd9Sstevel@tonic-gate  service
10417c478bd9Sstevel@tonic-gate
10427c478bd9Sstevel@tonic-gate    The service contains the set of instances defined by default for
10437c478bd9Sstevel@tonic-gate    this service, an optional method execution context, any default
10447c478bd9Sstevel@tonic-gate    methods, the template, and various restrictions or advice applicable
10457c478bd9Sstevel@tonic-gate    at installation.  The method execution context and template elements
10467c478bd9Sstevel@tonic-gate    are required for service_bundle documents with type "manifest", but
10477c478bd9Sstevel@tonic-gate    are optional for "profile" or "archive" documents.
10487c478bd9Sstevel@tonic-gate
10497c478bd9Sstevel@tonic-gate    Its attributes are
10507c478bd9Sstevel@tonic-gate
10517c478bd9Sstevel@tonic-gate	name	The canonical name for the service.
10527c478bd9Sstevel@tonic-gate
10537c478bd9Sstevel@tonic-gate	version	[integer] The integer version for this service.
10547c478bd9Sstevel@tonic-gate
10557c478bd9Sstevel@tonic-gate	type	Whether this service is a simple service, a delegated
10567c478bd9Sstevel@tonic-gate		restarter, or a milestone (a synthetic service that
10577c478bd9Sstevel@tonic-gate		collects a group of dependencies).
10587c478bd9Sstevel@tonic-gate-->
10597c478bd9Sstevel@tonic-gate
10607c478bd9Sstevel@tonic-gate<!ELEMENT service
10617c478bd9Sstevel@tonic-gate	( create_default_instance?, single_instance?, restarter?,
10627c478bd9Sstevel@tonic-gate	dependency*, dependent*, method_context?, exec_method*,
1063*f6e214c7SGavin Maltby	notification_parameters*, property_group*, instance*,
1064*f6e214c7SGavin Maltby	stability?, template? ) >
10657c478bd9Sstevel@tonic-gate
10667c478bd9Sstevel@tonic-gate<!ATTLIST service
10677c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED
10687c478bd9Sstevel@tonic-gate	version		CDATA #REQUIRED
10697c478bd9Sstevel@tonic-gate	type		( service | restarter | milestone ) #REQUIRED >
10707c478bd9Sstevel@tonic-gate
10717c478bd9Sstevel@tonic-gate<!--
10727c478bd9Sstevel@tonic-gate  service_bundle
10737c478bd9Sstevel@tonic-gate
10747c478bd9Sstevel@tonic-gate    The bundle possesses two attributes:
10757c478bd9Sstevel@tonic-gate
10767c478bd9Sstevel@tonic-gate	type	How this file is to be understood by the framework (or
10777c478bd9Sstevel@tonic-gate		used in a non-framework compliant way). Standard types
10787c478bd9Sstevel@tonic-gate		are 'archive', 'manifest', and 'profile'.
10797c478bd9Sstevel@tonic-gate
10807c478bd9Sstevel@tonic-gate	name	A name for the bundle.  Manifests should be named after
10817c478bd9Sstevel@tonic-gate		the package which delivered them; profiles should be
10827c478bd9Sstevel@tonic-gate		named after the "feature set nickname" they intend to
10837c478bd9Sstevel@tonic-gate		enable.
10847c478bd9Sstevel@tonic-gate-->
10857c478bd9Sstevel@tonic-gate
10867c478bd9Sstevel@tonic-gate<!ELEMENT service_bundle
10877c478bd9Sstevel@tonic-gate	( service_bundle* | service* | xi:include* )>
10887c478bd9Sstevel@tonic-gate
10897c478bd9Sstevel@tonic-gate<!ATTLIST service_bundle
10907c478bd9Sstevel@tonic-gate	type		CDATA #REQUIRED
10917c478bd9Sstevel@tonic-gate	name		CDATA #REQUIRED>
1092