xref: /onnv-gate/usr/src/cmd/svc/dtd/service_bundle.dtd.1 (revision 12967:ab9ae749152f)
10Sstevel@tonic-gate<?xml version="1.0" encoding="UTF-8"?>
20Sstevel@tonic-gate<!--
312667SSean.Wilcox@Sun.COM Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
40Sstevel@tonic-gate
50Sstevel@tonic-gate CDDL HEADER START
60Sstevel@tonic-gate
70Sstevel@tonic-gate The contents of this file are subject to the terms of the
82643Stalley Common Development and Distribution License (the "License").
92643Stalley You may not use this file except in compliance with the License.
100Sstevel@tonic-gate
110Sstevel@tonic-gate You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
120Sstevel@tonic-gate or http://www.opensolaris.org/os/licensing.
130Sstevel@tonic-gate See the License for the specific language governing permissions
140Sstevel@tonic-gate and limitations under the License.
150Sstevel@tonic-gate
160Sstevel@tonic-gate When distributing Covered Code, include this CDDL HEADER in each
170Sstevel@tonic-gate file and include the License file at usr/src/OPENSOLARIS.LICENSE.
180Sstevel@tonic-gate If applicable, add the following below this CDDL HEADER, with the
190Sstevel@tonic-gate fields enclosed by brackets "[]" replaced with your own identifying
200Sstevel@tonic-gate information: Portions Copyright [yyyy] [name of copyright owner]
210Sstevel@tonic-gate
220Sstevel@tonic-gate CDDL HEADER END
230Sstevel@tonic-gate-->
240Sstevel@tonic-gate
250Sstevel@tonic-gate<!--
260Sstevel@tonic-gate  Service description DTD
270Sstevel@tonic-gate
280Sstevel@tonic-gate    Most attributes are string values (or an individual string from a
290Sstevel@tonic-gate    restricted set), but attributes with a specific type requirement are
300Sstevel@tonic-gate    noted in the comment describing the element.
310Sstevel@tonic-gate-->
320Sstevel@tonic-gate
330Sstevel@tonic-gate<!--
340Sstevel@tonic-gate  XInclude support
350Sstevel@tonic-gate
360Sstevel@tonic-gate    A series of service bundles may be composed via the xi:include tag.
370Sstevel@tonic-gate    smf(5) tools enforce that all bundles be of the same type.
380Sstevel@tonic-gate-->
3912667SSean.Wilcox@Sun.COM
4012667SSean.Wilcox@Sun.COM<!--
4112667SSean.Wilcox@Sun.COM     These entities are used for the property, propval and property_group
4212667SSean.Wilcox@Sun.COM     elements, that require type attributes for manifest, while for profiles
4312667SSean.Wilcox@Sun.COM     the type attributes are only implied.
4412667SSean.Wilcox@Sun.COM-->
4512667SSean.Wilcox@Sun.COM
4612667SSean.Wilcox@Sun.COM<!ENTITY % profile "IGNORE">
4712667SSean.Wilcox@Sun.COM<!ENTITY % manifest "INCLUDE">
4812667SSean.Wilcox@Sun.COM
490Sstevel@tonic-gate<!ELEMENT xi:include
500Sstevel@tonic-gate  (xi:fallback)
510Sstevel@tonic-gate  >
520Sstevel@tonic-gate<!ATTLIST xi:include
530Sstevel@tonic-gate  href CDATA #REQUIRED
540Sstevel@tonic-gate  parse (xml|text) "xml"
550Sstevel@tonic-gate  encoding CDATA #IMPLIED
560Sstevel@tonic-gate  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
570Sstevel@tonic-gate  >
580Sstevel@tonic-gate
590Sstevel@tonic-gate<!ELEMENT xi:fallback
600Sstevel@tonic-gate  ANY
610Sstevel@tonic-gate  >
620Sstevel@tonic-gate<!ATTLIST xi:fallback
630Sstevel@tonic-gate  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
640Sstevel@tonic-gate  >
650Sstevel@tonic-gate
660Sstevel@tonic-gate<!--
670Sstevel@tonic-gate  stability
680Sstevel@tonic-gate
690Sstevel@tonic-gate    This element associates an SMI stability level with the parent
700Sstevel@tonic-gate    element.  See attributes(5) for an explanation of interface
710Sstevel@tonic-gate    stability levels.
720Sstevel@tonic-gate
730Sstevel@tonic-gate    Its attribute is
740Sstevel@tonic-gate
750Sstevel@tonic-gate	value	The stability level of the parent element.
760Sstevel@tonic-gate-->
770Sstevel@tonic-gate
780Sstevel@tonic-gate<!ELEMENT stability EMPTY>
790Sstevel@tonic-gate
800Sstevel@tonic-gate<!ATTLIST stability
810Sstevel@tonic-gate	value		( Standard | Stable | Evolving | Unstable |
820Sstevel@tonic-gate			External | Obsolete ) #REQUIRED >
830Sstevel@tonic-gate
840Sstevel@tonic-gate<!-- Property value lists -->
850Sstevel@tonic-gate
860Sstevel@tonic-gate<!--
870Sstevel@tonic-gate  value_node
880Sstevel@tonic-gate
890Sstevel@tonic-gate    This element represents a single value within any of the typed
900Sstevel@tonic-gate    property value lists.
910Sstevel@tonic-gate
920Sstevel@tonic-gate    Its attribute is
930Sstevel@tonic-gate
940Sstevel@tonic-gate	value	The value for this node in the list.
950Sstevel@tonic-gate-->
960Sstevel@tonic-gate
970Sstevel@tonic-gate<!ELEMENT value_node EMPTY>
980Sstevel@tonic-gate
990Sstevel@tonic-gate<!ATTLIST value_node
1000Sstevel@tonic-gate	value CDATA #REQUIRED>
1010Sstevel@tonic-gate
1020Sstevel@tonic-gate<!--
1030Sstevel@tonic-gate  count_list
1040Sstevel@tonic-gate  integer_list
1050Sstevel@tonic-gate  opaque_list
1060Sstevel@tonic-gate  host_list
1070Sstevel@tonic-gate  hostname_list
10812691SAntonello.Cruz@Sun.COM  net_address_list
1090Sstevel@tonic-gate  net_address_v4_list
1100Sstevel@tonic-gate  net_address_v6_list
1110Sstevel@tonic-gate  time_list
1120Sstevel@tonic-gate  astring_list
1130Sstevel@tonic-gate  ustring_list
1140Sstevel@tonic-gate  boolean_list
1150Sstevel@tonic-gate  fmri_list
1160Sstevel@tonic-gate  uri_list
1170Sstevel@tonic-gate
1180Sstevel@tonic-gate    These elements represent the typed lists of values for a property.
1190Sstevel@tonic-gate    Each contains one or more value_node elements representing each
1200Sstevel@tonic-gate    value on the list.
1210Sstevel@tonic-gate
1220Sstevel@tonic-gate    None of these elements has attributes.
1230Sstevel@tonic-gate-->
1240Sstevel@tonic-gate
1250Sstevel@tonic-gate<!ELEMENT count_list
1260Sstevel@tonic-gate	( value_node+ )>
1270Sstevel@tonic-gate
1280Sstevel@tonic-gate<!ATTLIST count_list>
1290Sstevel@tonic-gate
1300Sstevel@tonic-gate<!ELEMENT integer_list
1310Sstevel@tonic-gate	( value_node+ )>
1320Sstevel@tonic-gate
1330Sstevel@tonic-gate<!ATTLIST integer_list>
1340Sstevel@tonic-gate
1350Sstevel@tonic-gate<!ELEMENT opaque_list
1360Sstevel@tonic-gate	( value_node+ )>
1370Sstevel@tonic-gate
1380Sstevel@tonic-gate<!ATTLIST opaque_list>
1390Sstevel@tonic-gate
1400Sstevel@tonic-gate<!ELEMENT host_list
1410Sstevel@tonic-gate	( value_node+ )>
1420Sstevel@tonic-gate
1430Sstevel@tonic-gate<!ATTLIST host_list>
1440Sstevel@tonic-gate
1450Sstevel@tonic-gate<!ELEMENT hostname_list
1460Sstevel@tonic-gate	( value_node+ )>
1470Sstevel@tonic-gate
1480Sstevel@tonic-gate<!ATTLIST hostname_list>
1490Sstevel@tonic-gate
15012691SAntonello.Cruz@Sun.COM<!ELEMENT net_address_list
15112691SAntonello.Cruz@Sun.COM	( value_node+ )>
15212691SAntonello.Cruz@Sun.COM
15312691SAntonello.Cruz@Sun.COM<!ATTLIST net_address_list>
15412691SAntonello.Cruz@Sun.COM
1550Sstevel@tonic-gate<!ELEMENT net_address_v4_list
1560Sstevel@tonic-gate	( value_node+ )>
1570Sstevel@tonic-gate
1580Sstevel@tonic-gate<!ATTLIST net_address_v4_list>
1590Sstevel@tonic-gate
1600Sstevel@tonic-gate<!ELEMENT net_address_v6_list
1610Sstevel@tonic-gate	( value_node+ )>
1620Sstevel@tonic-gate
1630Sstevel@tonic-gate<!ATTLIST net_address_v6_list>
1640Sstevel@tonic-gate
1650Sstevel@tonic-gate<!ELEMENT time_list
1660Sstevel@tonic-gate	( value_node+ )>
1670Sstevel@tonic-gate
1680Sstevel@tonic-gate<!ATTLIST time_list>
1690Sstevel@tonic-gate
1700Sstevel@tonic-gate<!ELEMENT astring_list
1710Sstevel@tonic-gate	( value_node+ )>
1720Sstevel@tonic-gate
1730Sstevel@tonic-gate<!ATTLIST astring_list>
1740Sstevel@tonic-gate
1750Sstevel@tonic-gate<!ELEMENT ustring_list
1760Sstevel@tonic-gate	( value_node+ )>
1770Sstevel@tonic-gate
1780Sstevel@tonic-gate<!ATTLIST ustring_list>
1790Sstevel@tonic-gate
1800Sstevel@tonic-gate<!ELEMENT boolean_list
1810Sstevel@tonic-gate	( value_node+ )>
1820Sstevel@tonic-gate
1830Sstevel@tonic-gate<!ATTLIST boolean_list>
1840Sstevel@tonic-gate
1850Sstevel@tonic-gate<!ELEMENT fmri_list
1860Sstevel@tonic-gate	( value_node+ )>
1870Sstevel@tonic-gate
1880Sstevel@tonic-gate<!ATTLIST fmri_list>
1890Sstevel@tonic-gate
1900Sstevel@tonic-gate<!ELEMENT uri_list
1910Sstevel@tonic-gate	( value_node+ )>
1920Sstevel@tonic-gate
1930Sstevel@tonic-gate<!ATTLIST uri_list>
1940Sstevel@tonic-gate
1950Sstevel@tonic-gate<!-- Properties and property groups -->
1960Sstevel@tonic-gate
1970Sstevel@tonic-gate<!--
1980Sstevel@tonic-gate   property
1990Sstevel@tonic-gate
2000Sstevel@tonic-gate     This element is for a singly or multiply valued property within a
2010Sstevel@tonic-gate     property group.  It contains an appropriate value list element,
2020Sstevel@tonic-gate     which is expected to be consistent with the type attribute.
2030Sstevel@tonic-gate
2040Sstevel@tonic-gate     Its attributes are
2050Sstevel@tonic-gate
2060Sstevel@tonic-gate	name	The name of this property.
2070Sstevel@tonic-gate
2080Sstevel@tonic-gate	type	The data type for this property.
2090Sstevel@tonic-gate
2100Sstevel@tonic-gate	override These values should replace values already in the
2110Sstevel@tonic-gate		repository.
2120Sstevel@tonic-gate-->
2130Sstevel@tonic-gate
21412667SSean.Wilcox@Sun.COM<![%profile;[
21512667SSean.Wilcox@Sun.COM<!ELEMENT property
21612667SSean.Wilcox@Sun.COM	( count_list | integer_list | opaque_list | host_list | hostname_list |
21712691SAntonello.Cruz@Sun.COM	net_address_list | net_address_v4_list | net_address_v6_list |
21812691SAntonello.Cruz@Sun.COM	time_list | astring_list | ustring_list | boolean_list | fmri_list |
21912667SSean.Wilcox@Sun.COM	uri_list )? >
22012667SSean.Wilcox@Sun.COM
22112667SSean.Wilcox@Sun.COM<!ATTLIST property
22212667SSean.Wilcox@Sun.COM	name		CDATA #REQUIRED
22312667SSean.Wilcox@Sun.COM	type		( count | integer | opaque | host | hostname |
22412691SAntonello.Cruz@Sun.COM			net_address | net_address_v4 | net_address_v6 | time |
22512667SSean.Wilcox@Sun.COM			astring | ustring | boolean | fmri | uri ) #IMPLIED
22612667SSean.Wilcox@Sun.COM	override	( true | false ) "false" >
22712667SSean.Wilcox@Sun.COM]]>
22812667SSean.Wilcox@Sun.COM
22912667SSean.Wilcox@Sun.COM<![%manifest;[
2300Sstevel@tonic-gate<!ELEMENT property
2310Sstevel@tonic-gate	( count_list | integer_list | opaque_list | host_list | hostname_list |
23212691SAntonello.Cruz@Sun.COM	net_address_list | net_address_v4_list | net_address_v6_list |
23312691SAntonello.Cruz@Sun.COM	time_list | astring_list | ustring_list | boolean_list | fmri_list |
2340Sstevel@tonic-gate	uri_list )? >
2350Sstevel@tonic-gate
2360Sstevel@tonic-gate<!ATTLIST property
2370Sstevel@tonic-gate	name		CDATA #REQUIRED
2380Sstevel@tonic-gate	type		( count | integer | opaque | host | hostname |
23912691SAntonello.Cruz@Sun.COM			net_address | net_address_v4 | net_address_v6 | time |
2400Sstevel@tonic-gate			astring | ustring | boolean | fmri | uri ) #REQUIRED
2410Sstevel@tonic-gate	override	( true | false ) "false" >
24212667SSean.Wilcox@Sun.COM]]>
2430Sstevel@tonic-gate
2440Sstevel@tonic-gate<!--
2450Sstevel@tonic-gate   propval
2460Sstevel@tonic-gate
2470Sstevel@tonic-gate     This element is for a singly valued property within a property
2480Sstevel@tonic-gate     group.  List-valued properties must use the property element above.
2490Sstevel@tonic-gate
2500Sstevel@tonic-gate     Its attributes are
2510Sstevel@tonic-gate
2520Sstevel@tonic-gate	name	The name of this property.
2530Sstevel@tonic-gate
2540Sstevel@tonic-gate	type	The data type for this property.
2550Sstevel@tonic-gate
2560Sstevel@tonic-gate	value	The value for this property.  Must match type
2570Sstevel@tonic-gate		restriction of type attribute.
2580Sstevel@tonic-gate
2590Sstevel@tonic-gate	override This value should replace any values already in the
2600Sstevel@tonic-gate		repository.
2610Sstevel@tonic-gate-->
2620Sstevel@tonic-gate
26312667SSean.Wilcox@Sun.COM<![%profile;[
26412667SSean.Wilcox@Sun.COM<!ELEMENT propval EMPTY>
26512667SSean.Wilcox@Sun.COM
26612667SSean.Wilcox@Sun.COM<!ATTLIST propval
26712667SSean.Wilcox@Sun.COM	name		CDATA #REQUIRED
26812667SSean.Wilcox@Sun.COM	type		( count | integer | opaque | host | hostname |
26912691SAntonello.Cruz@Sun.COM			net_address | net_address_v4 | net_address_v6 | time |
27012691SAntonello.Cruz@Sun.COM			astring | ustring | boolean | fmri | uri ) #IMPLIED
27112667SSean.Wilcox@Sun.COM	value		CDATA #REQUIRED
27212667SSean.Wilcox@Sun.COM	override	( true | false ) "false" >
27312667SSean.Wilcox@Sun.COM]]>
27412667SSean.Wilcox@Sun.COM
27512667SSean.Wilcox@Sun.COM<![%manifest;[
2760Sstevel@tonic-gate<!ELEMENT propval EMPTY>
2770Sstevel@tonic-gate
2780Sstevel@tonic-gate<!ATTLIST propval
2790Sstevel@tonic-gate	name		CDATA #REQUIRED
2800Sstevel@tonic-gate	type		( count | integer | opaque | host | hostname |
28112691SAntonello.Cruz@Sun.COM			net_address | net_address_v4 | net_address_v6 | time |
28212691SAntonello.Cruz@Sun.COM			astring | ustring | boolean | fmri | uri ) #REQUIRED
2830Sstevel@tonic-gate	value		CDATA #REQUIRED
2840Sstevel@tonic-gate	override	( true | false ) "false" >
28512667SSean.Wilcox@Sun.COM]]>
2860Sstevel@tonic-gate
2870Sstevel@tonic-gate<!--
2880Sstevel@tonic-gate  property_group
2890Sstevel@tonic-gate
2900Sstevel@tonic-gate    This element is for a set of related properties on a service or
2910Sstevel@tonic-gate    instance.  It contains an optional stability element, as well as
2920Sstevel@tonic-gate    zero or more property-containing elements.
2930Sstevel@tonic-gate
2940Sstevel@tonic-gate    Its attributes are
2950Sstevel@tonic-gate
2960Sstevel@tonic-gate	name	The name of this property group.
2970Sstevel@tonic-gate
2980Sstevel@tonic-gate	type	A category for this property group.  Groups of type
2990Sstevel@tonic-gate		"framework", "implementation" or "template" are primarily
3000Sstevel@tonic-gate		of interest to the service management facility, while
3010Sstevel@tonic-gate		groups of type "application" are expected to be only of
3020Sstevel@tonic-gate		interest to the service to which this group is attached.
3030Sstevel@tonic-gate		Other types may be introduced using the service symbol
3040Sstevel@tonic-gate		namespace conventions.
3050Sstevel@tonic-gate
3060Sstevel@tonic-gate	delete	If in the repository, this property group should be removed.
3070Sstevel@tonic-gate-->
3080Sstevel@tonic-gate
30912667SSean.Wilcox@Sun.COM<![%profile;[
31012667SSean.Wilcox@Sun.COM<!ELEMENT property_group
31112667SSean.Wilcox@Sun.COM	( stability?, ( propval | property )* )>
31212667SSean.Wilcox@Sun.COM
31312667SSean.Wilcox@Sun.COM<!ATTLIST property_group
31412667SSean.Wilcox@Sun.COM	name		CDATA #REQUIRED
31512667SSean.Wilcox@Sun.COM	type		CDATA #IMPLIED
31612667SSean.Wilcox@Sun.COM	delete		( true | false ) "false" >
31712667SSean.Wilcox@Sun.COM]]>
31812667SSean.Wilcox@Sun.COM
31912667SSean.Wilcox@Sun.COM<![%manifest;[
3200Sstevel@tonic-gate<!ELEMENT property_group
3210Sstevel@tonic-gate	( stability?, ( propval | property )* )>
3220Sstevel@tonic-gate
3230Sstevel@tonic-gate<!ATTLIST property_group
3240Sstevel@tonic-gate	name		CDATA #REQUIRED
3250Sstevel@tonic-gate	type		CDATA #REQUIRED
3260Sstevel@tonic-gate	delete		( true | false ) "false" >
32712667SSean.Wilcox@Sun.COM]]>
3280Sstevel@tonic-gate
3290Sstevel@tonic-gate<!--
3300Sstevel@tonic-gate  service_fmri
3310Sstevel@tonic-gate
3320Sstevel@tonic-gate    This element defines a reference to a service FMRI (for either a
3330Sstevel@tonic-gate    service or an instance).
3340Sstevel@tonic-gate
3350Sstevel@tonic-gate    Its attribute is
3360Sstevel@tonic-gate
3370Sstevel@tonic-gate	value	The FMRI.
3380Sstevel@tonic-gate-->
3390Sstevel@tonic-gate
3400Sstevel@tonic-gate<!ELEMENT service_fmri EMPTY>
3410Sstevel@tonic-gate
3420Sstevel@tonic-gate<!ATTLIST service_fmri
3430Sstevel@tonic-gate	value		CDATA #REQUIRED>
3440Sstevel@tonic-gate
3450Sstevel@tonic-gate<!-- Dependencies -->
3460Sstevel@tonic-gate
3470Sstevel@tonic-gate<!--
3480Sstevel@tonic-gate  dependency
3490Sstevel@tonic-gate
3500Sstevel@tonic-gate    This element identifies a group of FMRIs upon which the service is
3510Sstevel@tonic-gate    in some sense dependent.  Its interpretation is left to the
3520Sstevel@tonic-gate    restarter to which a particular service instance is delegated.  It
3530Sstevel@tonic-gate    contains a group of service FMRIs, as well as a block of properties.
3540Sstevel@tonic-gate
3550Sstevel@tonic-gate    Its attributes are
3560Sstevel@tonic-gate
3570Sstevel@tonic-gate	name	The name of this dependency.
3580Sstevel@tonic-gate
3590Sstevel@tonic-gate	grouping The relationship between the various FMRIs grouped
3600Sstevel@tonic-gate		here; "require_all" of the FMRIs to be online, "require_any"
3610Sstevel@tonic-gate		of the FMRIs to be online, or "exclude_all" of the FMRIs
3627887SLiane.Praza@Sun.COM		from being online or in maintenance for the dependency to
3637887SLiane.Praza@Sun.COM		be satisfied.  "optional_all" dependencies are satisfied
3647887SLiane.Praza@Sun.COM		when all of the FMRIs are either online or unable to come
3650Sstevel@tonic-gate		online (because they are disabled, misconfigured, or one
3660Sstevel@tonic-gate		of their dependencies is unable to come online).
3670Sstevel@tonic-gate
3680Sstevel@tonic-gate	restart_on The type of events from the FMRIs that the service should
3690Sstevel@tonic-gate		be restarted for.  "error" restarts the service if the
3700Sstevel@tonic-gate		dependency is restarted due to hardware fault.  "restart"
3710Sstevel@tonic-gate		restarts the service if the dependency is restarted for
3720Sstevel@tonic-gate		any reason, including hardware fault.  "refresh" restarts
3730Sstevel@tonic-gate		the service if the dependency is refreshed or restarted for
3740Sstevel@tonic-gate		any reason.  "none" will never restart the service due to
3750Sstevel@tonic-gate		dependency state changes.
3760Sstevel@tonic-gate
3770Sstevel@tonic-gate	type	The type of dependency: on another service ('service'), on
3780Sstevel@tonic-gate		a filesystem path ('path'), or another dependency type.
3790Sstevel@tonic-gate
3800Sstevel@tonic-gate	delete	This dependency should be deleted.
3810Sstevel@tonic-gate-->
3820Sstevel@tonic-gate
3830Sstevel@tonic-gate<!ELEMENT dependency
3840Sstevel@tonic-gate	( service_fmri*, stability?, ( propval | property )* ) >
3850Sstevel@tonic-gate
3860Sstevel@tonic-gate<!ATTLIST dependency
3870Sstevel@tonic-gate	name		CDATA #REQUIRED
3880Sstevel@tonic-gate	grouping	( require_all | require_any | exclude_all |
3890Sstevel@tonic-gate			optional_all ) #REQUIRED
3900Sstevel@tonic-gate	restart_on	( error | restart | refresh | none ) #REQUIRED
3910Sstevel@tonic-gate	type		CDATA #REQUIRED
3920Sstevel@tonic-gate	delete		( true | false ) "false" >
3930Sstevel@tonic-gate
3940Sstevel@tonic-gate<!-- Dependents -->
3950Sstevel@tonic-gate
3960Sstevel@tonic-gate<!--
3970Sstevel@tonic-gate  dependent
3980Sstevel@tonic-gate
3990Sstevel@tonic-gate    This element identifies a service which should depend on this service.  It
4000Sstevel@tonic-gate    corresponds to a dependency in the named service.  The grouping and type
4010Sstevel@tonic-gate    attributes of that dependency are implied to be "require_all" and
4020Sstevel@tonic-gate    "service", respectively.
4030Sstevel@tonic-gate
4040Sstevel@tonic-gate    Its attributes are
4050Sstevel@tonic-gate
4060Sstevel@tonic-gate	name	The name of the dependency property group to create in the
4070Sstevel@tonic-gate		dependent entity.
4080Sstevel@tonic-gate
4090Sstevel@tonic-gate	grouping The grouping relationship of the dependency property
4100Sstevel@tonic-gate		group to create in the dependent entity.  See "grouping"
4110Sstevel@tonic-gate		attribute on the dependency element.
4120Sstevel@tonic-gate
4130Sstevel@tonic-gate	restart_on The type of events from this service that the named service
4140Sstevel@tonic-gate		should be restarted for.
4150Sstevel@tonic-gate
4160Sstevel@tonic-gate	delete	True if this dependent should be deleted.
4170Sstevel@tonic-gate
4180Sstevel@tonic-gate	override Whether to replace an existing dependent of the same name.
4190Sstevel@tonic-gate
4200Sstevel@tonic-gate-->
4210Sstevel@tonic-gate
4220Sstevel@tonic-gate<!ELEMENT dependent
4230Sstevel@tonic-gate	( service_fmri, stability?, ( propval | property )* ) >
4240Sstevel@tonic-gate
4250Sstevel@tonic-gate<!ATTLIST dependent
4260Sstevel@tonic-gate	name		CDATA #REQUIRED
4270Sstevel@tonic-gate	grouping	( require_all | require_any | exclude_all |
4280Sstevel@tonic-gate			optional_all) #REQUIRED
4290Sstevel@tonic-gate	restart_on	( error | restart | refresh | none) #REQUIRED
4300Sstevel@tonic-gate	delete		( true | false ) "false"
4310Sstevel@tonic-gate	override	( true | false ) "false" >
4320Sstevel@tonic-gate
4330Sstevel@tonic-gate<!-- Method execution context, security profile, and credential definitions -->
4340Sstevel@tonic-gate
4350Sstevel@tonic-gate<!--
4360Sstevel@tonic-gate  envvar
4370Sstevel@tonic-gate
4380Sstevel@tonic-gate    An environment variable. It has two attributes:
4390Sstevel@tonic-gate
4400Sstevel@tonic-gate	name	The name of the environment variable.
4410Sstevel@tonic-gate	value	The value of the environment variable.
4420Sstevel@tonic-gate-->
4430Sstevel@tonic-gate
4440Sstevel@tonic-gate<!ELEMENT envvar EMPTY>
4450Sstevel@tonic-gate
4460Sstevel@tonic-gate<!ATTLIST envvar
4470Sstevel@tonic-gate	name		CDATA #REQUIRED
4480Sstevel@tonic-gate	value		CDATA #REQUIRED >
4490Sstevel@tonic-gate
4500Sstevel@tonic-gate<!--
4510Sstevel@tonic-gate  method_environment
4520Sstevel@tonic-gate
4530Sstevel@tonic-gate    This element defines the environment for a method. It has no
4540Sstevel@tonic-gate    attributes, and one or more envvar child elements.
4550Sstevel@tonic-gate-->
4560Sstevel@tonic-gate
4570Sstevel@tonic-gate<!ELEMENT method_environment (envvar+) >
4580Sstevel@tonic-gate
4590Sstevel@tonic-gate<!ATTLIST method_environment>
4600Sstevel@tonic-gate
4610Sstevel@tonic-gate<!--
4620Sstevel@tonic-gate  method_profile
4630Sstevel@tonic-gate
4640Sstevel@tonic-gate    This element indicates which exec_attr(5) profile applies to the
4650Sstevel@tonic-gate    method context being defined.
4660Sstevel@tonic-gate
4670Sstevel@tonic-gate    Its attribute is
4680Sstevel@tonic-gate
4690Sstevel@tonic-gate	name	The name of the profile.
4700Sstevel@tonic-gate-->
4710Sstevel@tonic-gate
4720Sstevel@tonic-gate<!ELEMENT method_profile EMPTY>
4730Sstevel@tonic-gate
4740Sstevel@tonic-gate<!ATTLIST method_profile
4750Sstevel@tonic-gate	name		CDATA #REQUIRED >
4760Sstevel@tonic-gate
4770Sstevel@tonic-gate<!--
4780Sstevel@tonic-gate  method_credential
4790Sstevel@tonic-gate
4800Sstevel@tonic-gate    This element specifies credential attributes for the execution
4810Sstevel@tonic-gate    method to use.
4820Sstevel@tonic-gate
4830Sstevel@tonic-gate    Its attributes are
4840Sstevel@tonic-gate
4850Sstevel@tonic-gate	user	The user ID, in numeric or text form.
4860Sstevel@tonic-gate
4870Sstevel@tonic-gate	group	The group ID, in numeric or text form.  If absent or
4880Sstevel@tonic-gate		":default", the group associated with the user in the
4890Sstevel@tonic-gate		passwd database.
4900Sstevel@tonic-gate
4910Sstevel@tonic-gate	supp_groups Supplementary group IDs to be associated with the
4920Sstevel@tonic-gate		method, separated by commas or spaces.  If absent or
4930Sstevel@tonic-gate		":default", initgroups(3C) will be used.
4940Sstevel@tonic-gate
4950Sstevel@tonic-gate	privileges An optional string specifying the privilege set.
4960Sstevel@tonic-gate
4970Sstevel@tonic-gate	limit_privileges An optional string specifying the limit
4980Sstevel@tonic-gate		privilege set.
4990Sstevel@tonic-gate-->
5000Sstevel@tonic-gate
5010Sstevel@tonic-gate<!ELEMENT method_credential EMPTY>
5020Sstevel@tonic-gate
5030Sstevel@tonic-gate<!ATTLIST method_credential
5040Sstevel@tonic-gate	user		CDATA #REQUIRED
5059263SSean.Wilcox@Sun.COM	group		CDATA #IMPLIED
5069263SSean.Wilcox@Sun.COM	supp_groups	CDATA #IMPLIED
5079263SSean.Wilcox@Sun.COM	privileges	CDATA #IMPLIED
5089263SSean.Wilcox@Sun.COM	limit_privileges CDATA #IMPLIED >
5090Sstevel@tonic-gate
5100Sstevel@tonic-gate<!--
5110Sstevel@tonic-gate  method_context
5120Sstevel@tonic-gate
5130Sstevel@tonic-gate    This element combines credential and resource management attributes
5140Sstevel@tonic-gate    for execution methods.  It may contain a method_environment, or
5150Sstevel@tonic-gate    a method_profile or method_credential element.
5160Sstevel@tonic-gate
5170Sstevel@tonic-gate    Its attributes are
5180Sstevel@tonic-gate
5190Sstevel@tonic-gate	working_directory The home directory to launch the method from.
5200Sstevel@tonic-gate		":default" can be used as a token to indicate use of the
5210Sstevel@tonic-gate		user specified by the credential or profile specified.
5220Sstevel@tonic-gate
5230Sstevel@tonic-gate	project	The project ID, in numeric or text form.  ":default" can
5240Sstevel@tonic-gate		be used as a token to indicate use of the project
5250Sstevel@tonic-gate		identified by getdefaultproj(3PROJECT) for the non-root
5260Sstevel@tonic-gate		user specified by the credential or profile specified.
5270Sstevel@tonic-gate		If the user is root, ":default" designates the project
5280Sstevel@tonic-gate		the restarter is running in.
5290Sstevel@tonic-gate
5300Sstevel@tonic-gate	resource_pool The resource pool name to launch the method on.
5310Sstevel@tonic-gate		":default" can be used as a token to indicate use of the
5320Sstevel@tonic-gate		pool specified in the project(4) entry given in the
5330Sstevel@tonic-gate		"project" attribute above.
5340Sstevel@tonic-gate-->
5350Sstevel@tonic-gate<!ELEMENT method_context
5360Sstevel@tonic-gate	( (method_profile | method_credential)?, method_environment? ) >
5370Sstevel@tonic-gate
5380Sstevel@tonic-gate<!ATTLIST method_context
5399263SSean.Wilcox@Sun.COM	working_directory	CDATA #IMPLIED
5409263SSean.Wilcox@Sun.COM	project			CDATA #IMPLIED
5419263SSean.Wilcox@Sun.COM	resource_pool		CDATA #IMPLIED >
5420Sstevel@tonic-gate
5430Sstevel@tonic-gate<!-- Restarter delegation, methods, and monitors -->
5440Sstevel@tonic-gate
5450Sstevel@tonic-gate<!--
5460Sstevel@tonic-gate  exec_method
5470Sstevel@tonic-gate
5480Sstevel@tonic-gate    This element describes one of the methods used by the designated
5490Sstevel@tonic-gate    restarter to act on the service instance.  Its interpretation is
5500Sstevel@tonic-gate    left to the restarter to which a particular service instance is
5510Sstevel@tonic-gate    delegated.  It contains a set of attributes, an optional method
5520Sstevel@tonic-gate    context, and an optional stability element for the optional
5530Sstevel@tonic-gate    properties that can be included.
5540Sstevel@tonic-gate
5550Sstevel@tonic-gate    Its attributes are
5560Sstevel@tonic-gate
5570Sstevel@tonic-gate	type	The type of method, either "method" or "monitor".
5580Sstevel@tonic-gate
5590Sstevel@tonic-gate	name	Name of this execution method.  The method names are
5600Sstevel@tonic-gate		usually a defined interface of the restarter to which an
5610Sstevel@tonic-gate		instance of this service is delegated.
5620Sstevel@tonic-gate
5630Sstevel@tonic-gate	exec	The string identifying the action to take.  For
5640Sstevel@tonic-gate		svc.startd(1M), this is a string suitable to pass to
5650Sstevel@tonic-gate		exec(2).
5660Sstevel@tonic-gate
5670Sstevel@tonic-gate	timeout_seconds [integer] Duration, in seconds, to wait for this
5680Sstevel@tonic-gate		method to complete.  A '0' or '-1' denotes an infinite
5690Sstevel@tonic-gate		timeout.
5700Sstevel@tonic-gate
5710Sstevel@tonic-gate	delete	If in the repository, the property group for this method
5720Sstevel@tonic-gate		should be removed.
5730Sstevel@tonic-gate-->
5740Sstevel@tonic-gate
5750Sstevel@tonic-gate<!ELEMENT exec_method
5760Sstevel@tonic-gate	( method_context?, stability?, ( propval | property )* ) >
5770Sstevel@tonic-gate
5780Sstevel@tonic-gate<!ATTLIST exec_method
5790Sstevel@tonic-gate	type		( method | monitor ) #REQUIRED
5800Sstevel@tonic-gate	name		CDATA #REQUIRED
5810Sstevel@tonic-gate	exec		CDATA #REQUIRED
5820Sstevel@tonic-gate	timeout_seconds	CDATA #REQUIRED
5830Sstevel@tonic-gate	delete		( true | false ) "false" >
5840Sstevel@tonic-gate
5850Sstevel@tonic-gate<!--
5860Sstevel@tonic-gate  restarter
5870Sstevel@tonic-gate
5880Sstevel@tonic-gate    A flag element identifying the restarter to which this service or
5890Sstevel@tonic-gate    service instance is delegated.  Contains the FMRI naming the
5900Sstevel@tonic-gate    delegated restarter.
5910Sstevel@tonic-gate
5920Sstevel@tonic-gate    This element has no attributes.
5930Sstevel@tonic-gate-->
5940Sstevel@tonic-gate
5950Sstevel@tonic-gate<!ELEMENT restarter
5960Sstevel@tonic-gate	( service_fmri ) >
5970Sstevel@tonic-gate
5980Sstevel@tonic-gate<!ATTLIST restarter>
5990Sstevel@tonic-gate
6000Sstevel@tonic-gate<!--
6010Sstevel@tonic-gate  Templates
6020Sstevel@tonic-gate-->
6030Sstevel@tonic-gate
6040Sstevel@tonic-gate<!--
6050Sstevel@tonic-gate  doc_link
6060Sstevel@tonic-gate
6070Sstevel@tonic-gate    The doc_link relates a resource described by the given URI to the
6080Sstevel@tonic-gate    service described by the containing template.  The resource is
6090Sstevel@tonic-gate    expected to be a documentation or elucidatory reference of some
6100Sstevel@tonic-gate    kind.
6110Sstevel@tonic-gate
6120Sstevel@tonic-gate    Its attributes are
6130Sstevel@tonic-gate
6140Sstevel@tonic-gate      name      A label for this resource.
6150Sstevel@tonic-gate
6160Sstevel@tonic-gate      uri       A URI to the resource.
6170Sstevel@tonic-gate-->
6180Sstevel@tonic-gate
6190Sstevel@tonic-gate<!ELEMENT doc_link EMPTY>
6200Sstevel@tonic-gate
6210Sstevel@tonic-gate<!ATTLIST doc_link
6220Sstevel@tonic-gate	name		CDATA #REQUIRED
6230Sstevel@tonic-gate	uri		CDATA #REQUIRED >
6240Sstevel@tonic-gate
6250Sstevel@tonic-gate<!--
6260Sstevel@tonic-gate  manpage
6270Sstevel@tonic-gate
6280Sstevel@tonic-gate    The manpage element connects the reference manual page to the
6290Sstevel@tonic-gate    template's service.
6300Sstevel@tonic-gate
6310Sstevel@tonic-gate    Its attributes are
6320Sstevel@tonic-gate
6330Sstevel@tonic-gate      title     The manual page title.
6340Sstevel@tonic-gate
6350Sstevel@tonic-gate      section   The manual page's section.
6360Sstevel@tonic-gate
6370Sstevel@tonic-gate      manpath   The MANPATH environment variable, as described in man(1)
6380Sstevel@tonic-gate                that is required to reach the named manual page
6390Sstevel@tonic-gate-->
6400Sstevel@tonic-gate
6410Sstevel@tonic-gate<!ELEMENT manpage EMPTY>
6420Sstevel@tonic-gate
6430Sstevel@tonic-gate<!ATTLIST manpage
6440Sstevel@tonic-gate	title		CDATA #REQUIRED
6450Sstevel@tonic-gate	section		CDATA #REQUIRED
6460Sstevel@tonic-gate	manpath		CDATA ":default" >
6470Sstevel@tonic-gate
6480Sstevel@tonic-gate<!--
6490Sstevel@tonic-gate  documentation
6500Sstevel@tonic-gate
6510Sstevel@tonic-gate    The documentation element groups an arbitrary number of doc_link
6520Sstevel@tonic-gate    and manpage references.
6530Sstevel@tonic-gate
6540Sstevel@tonic-gate    It has no attributes.
6550Sstevel@tonic-gate-->
6560Sstevel@tonic-gate
6570Sstevel@tonic-gate<!ELEMENT documentation
6580Sstevel@tonic-gate	( doc_link | manpage )* >
6590Sstevel@tonic-gate
6600Sstevel@tonic-gate<!ATTLIST documentation>
6610Sstevel@tonic-gate
6620Sstevel@tonic-gate<!--
6630Sstevel@tonic-gate  loctext
6640Sstevel@tonic-gate
6650Sstevel@tonic-gate    The loctext element is a container for localized text.
6660Sstevel@tonic-gate
6670Sstevel@tonic-gate    Its sole attribute is
6680Sstevel@tonic-gate
6690Sstevel@tonic-gate	xml:lang The name of the locale, in the form accepted by LC_ALL,
6700Sstevel@tonic-gate		etc.  See locale(5).
6710Sstevel@tonic-gate-->
6720Sstevel@tonic-gate<!ELEMENT loctext
6730Sstevel@tonic-gate        (#PCDATA) >
6740Sstevel@tonic-gate
6750Sstevel@tonic-gate<!ATTLIST loctext
6760Sstevel@tonic-gate        xml:lang	CDATA #REQUIRED >
6770Sstevel@tonic-gate
6780Sstevel@tonic-gate<!--
6790Sstevel@tonic-gate  description
6800Sstevel@tonic-gate
6810Sstevel@tonic-gate    The description holds a set of potentially longer, localized strings that
6822643Stalley    consist of a short description of the service.
6830Sstevel@tonic-gate
6840Sstevel@tonic-gate    The description has no attributes.
6850Sstevel@tonic-gate-->
6860Sstevel@tonic-gate<!ELEMENT description
6870Sstevel@tonic-gate        ( loctext+ ) >
6880Sstevel@tonic-gate
6892643Stalley<!ATTLIST description>
6900Sstevel@tonic-gate
6910Sstevel@tonic-gate<!--
6920Sstevel@tonic-gate  common_name
6930Sstevel@tonic-gate
6940Sstevel@tonic-gate    The common_name holds a set of short, localized strings that
6950Sstevel@tonic-gate    represent a well-known name for the service in the given locale.
6960Sstevel@tonic-gate
6970Sstevel@tonic-gate    The common_name has no attributes.
6980Sstevel@tonic-gate-->
6990Sstevel@tonic-gate<!ELEMENT common_name
7000Sstevel@tonic-gate        ( loctext+ ) >
7010Sstevel@tonic-gate
7020Sstevel@tonic-gate<!ATTLIST common_name>
7030Sstevel@tonic-gate
7040Sstevel@tonic-gate<!--
7057887SLiane.Praza@Sun.COM  units
7067887SLiane.Praza@Sun.COM
7077887SLiane.Praza@Sun.COM    The units a numerical property is expressed in.
7087887SLiane.Praza@Sun.COM-->
7097887SLiane.Praza@Sun.COM
7107887SLiane.Praza@Sun.COM<!ELEMENT units
7117887SLiane.Praza@Sun.COM	( loctext+ ) >
7127887SLiane.Praza@Sun.COM
7137887SLiane.Praza@Sun.COM<!ATTLIST units>
7147887SLiane.Praza@Sun.COM
7157887SLiane.Praza@Sun.COM<!--
7167887SLiane.Praza@Sun.COM  visibility
7177887SLiane.Praza@Sun.COM
7187887SLiane.Praza@Sun.COM    Expresses how a property is typically accessed.  This isn't
7197887SLiane.Praza@Sun.COM    intended as access control, but as an indicator as to how a
7207887SLiane.Praza@Sun.COM    property is used.
7217887SLiane.Praza@Sun.COM
7227887SLiane.Praza@Sun.COM    Its attributes are:
7237887SLiane.Praza@Sun.COM
7247887SLiane.Praza@Sun.COM      value     'hidden', 'readonly', or 'readwrite' indicating that
7257887SLiane.Praza@Sun.COM		the property should be hidden from the user, shown but
7267887SLiane.Praza@Sun.COM		read-only, or modifiable.
7277887SLiane.Praza@Sun.COM-->
7287887SLiane.Praza@Sun.COM
7297887SLiane.Praza@Sun.COM<!ELEMENT visibility EMPTY>
7307887SLiane.Praza@Sun.COM
7317887SLiane.Praza@Sun.COM<!ATTLIST visibility
7327887SLiane.Praza@Sun.COM	value	( hidden | readonly | readwrite ) #REQUIRED >
7337887SLiane.Praza@Sun.COM
7347887SLiane.Praza@Sun.COM<!--
7357887SLiane.Praza@Sun.COM  value
7367887SLiane.Praza@Sun.COM
7377887SLiane.Praza@Sun.COM    Describes a legal value for a property value, and optionally contains a
7387887SLiane.Praza@Sun.COM    human-readable name and description for the specified property
7397887SLiane.Praza@Sun.COM    value.
7407887SLiane.Praza@Sun.COM
7417887SLiane.Praza@Sun.COM    Its attributes are:
7427887SLiane.Praza@Sun.COM
7437887SLiane.Praza@Sun.COM      name	A string representation of the value.
7447887SLiane.Praza@Sun.COM-->
7457887SLiane.Praza@Sun.COM
7467887SLiane.Praza@Sun.COM<!ELEMENT value
7477887SLiane.Praza@Sun.COM	( common_name?, description? ) >
7487887SLiane.Praza@Sun.COM
7497887SLiane.Praza@Sun.COM<!ATTLIST value
7507887SLiane.Praza@Sun.COM	name	CDATA #REQUIRED >
7517887SLiane.Praza@Sun.COM
7527887SLiane.Praza@Sun.COM<!--
7537887SLiane.Praza@Sun.COM  values
7547887SLiane.Praza@Sun.COM
7557887SLiane.Praza@Sun.COM    Human-readable names and descriptions for valid values of a property.
7567887SLiane.Praza@Sun.COM-->
7577887SLiane.Praza@Sun.COM
7587887SLiane.Praza@Sun.COM<!ELEMENT values
7597887SLiane.Praza@Sun.COM	(value+) >
7607887SLiane.Praza@Sun.COM
7617887SLiane.Praza@Sun.COM<!ATTLIST values>
7627887SLiane.Praza@Sun.COM
7637887SLiane.Praza@Sun.COM<!--
7647887SLiane.Praza@Sun.COM  cardinality
7657887SLiane.Praza@Sun.COM
7667887SLiane.Praza@Sun.COM    Places a constraint on the number of values the property can take
7677887SLiane.Praza@Sun.COM    on.
7687887SLiane.Praza@Sun.COM
7697887SLiane.Praza@Sun.COM    Its attributes are:
7707887SLiane.Praza@Sun.COM	min	minimum number of values
7717887SLiane.Praza@Sun.COM	max	maximum number of values
7727887SLiane.Praza@Sun.COM
7737887SLiane.Praza@Sun.COM    Both attributes are optional.  If min is not specified, it defaults to
7747887SLiane.Praza@Sun.COM    0.  If max is not specified it indicates an unlimited number of values.
7757887SLiane.Praza@Sun.COM    If neither is specified this indicates 0 or more values.
7767887SLiane.Praza@Sun.COM-->
7777887SLiane.Praza@Sun.COM
7787887SLiane.Praza@Sun.COM<!ELEMENT cardinality EMPTY>
7797887SLiane.Praza@Sun.COM
7807887SLiane.Praza@Sun.COM<!ATTLIST cardinality
7817887SLiane.Praza@Sun.COM	min	CDATA "0"
7827887SLiane.Praza@Sun.COM	max	CDATA "18446744073709551615">
7837887SLiane.Praza@Sun.COM
7847887SLiane.Praza@Sun.COM<!--
7857887SLiane.Praza@Sun.COM  internal_separators
7867887SLiane.Praza@Sun.COM
7877887SLiane.Praza@Sun.COM    Indicates the separators used within a property's value used to
7887887SLiane.Praza@Sun.COM    separate the actual values.  Used in situations where multiple
7897887SLiane.Praza@Sun.COM    values are packed into a single property value instead of using a
7907887SLiane.Praza@Sun.COM    multi-valued property.
7917887SLiane.Praza@Sun.COM-->
7927887SLiane.Praza@Sun.COM
7937887SLiane.Praza@Sun.COM<!ELEMENT internal_separators
7947887SLiane.Praza@Sun.COM	(#PCDATA) >
7957887SLiane.Praza@Sun.COM
7967887SLiane.Praza@Sun.COM<!ATTLIST internal_separators>
7977887SLiane.Praza@Sun.COM
7987887SLiane.Praza@Sun.COM<!--
7997887SLiane.Praza@Sun.COM  range
8007887SLiane.Praza@Sun.COM
8017887SLiane.Praza@Sun.COM    Indicates a range of possible integer values.
8027887SLiane.Praza@Sun.COM
8037887SLiane.Praza@Sun.COM    Its attributes are:
8047887SLiane.Praza@Sun.COM
8057887SLiane.Praza@Sun.COM      min	The minimum value of the range (inclusive).
8067887SLiane.Praza@Sun.COM      max	The maximum value of the range (inclusive).
8077887SLiane.Praza@Sun.COM-->
8087887SLiane.Praza@Sun.COM
8097887SLiane.Praza@Sun.COM<!ELEMENT range EMPTY>
8107887SLiane.Praza@Sun.COM
8117887SLiane.Praza@Sun.COM<!ATTLIST range
8127887SLiane.Praza@Sun.COM	min	CDATA #REQUIRED
8137887SLiane.Praza@Sun.COM	max	CDATA #REQUIRED >
8147887SLiane.Praza@Sun.COM
8157887SLiane.Praza@Sun.COM<!--
8167887SLiane.Praza@Sun.COM  constraints
8177887SLiane.Praza@Sun.COM
8187887SLiane.Praza@Sun.COM    Provides a set of constraints on the values a property can take on.
8197887SLiane.Praza@Sun.COM-->
8207887SLiane.Praza@Sun.COM
8217887SLiane.Praza@Sun.COM<!ELEMENT constraints
8227887SLiane.Praza@Sun.COM	( value*, range* ) >
8237887SLiane.Praza@Sun.COM<!ATTLIST constraints>
8247887SLiane.Praza@Sun.COM
8257887SLiane.Praza@Sun.COM<!--
8267887SLiane.Praza@Sun.COM  include_values
8277887SLiane.Praza@Sun.COM
8287887SLiane.Praza@Sun.COM    Includes an entire set of values in the choices block.
8297887SLiane.Praza@Sun.COM
8307887SLiane.Praza@Sun.COM    Its attributes are:
8317887SLiane.Praza@Sun.COM
8327887SLiane.Praza@Sun.COM	type    Either "constraints" or "values", indicating an
8337887SLiane.Praza@Sun.COM		inclusion of all values allowed by the property's
8347887SLiane.Praza@Sun.COM		constraints or all values for which there are
8357887SLiane.Praza@Sun.COM		human-readable names and descriptions, respectively.
8367887SLiane.Praza@Sun.COM-->
8377887SLiane.Praza@Sun.COM
8387887SLiane.Praza@Sun.COM<!ELEMENT include_values EMPTY>
8397887SLiane.Praza@Sun.COM
8407887SLiane.Praza@Sun.COM<!ATTLIST include_values
8417887SLiane.Praza@Sun.COM	type	( constraints | values ) #REQUIRED >
8427887SLiane.Praza@Sun.COM
8437887SLiane.Praza@Sun.COM<!--
8447887SLiane.Praza@Sun.COM  choices
8457887SLiane.Praza@Sun.COM
8467887SLiane.Praza@Sun.COM    Provides a set of common choices for the values a property can take
8477887SLiane.Praza@Sun.COM    on.  Useful in those cases where the possibilities are unenumerable
8487887SLiane.Praza@Sun.COM    or merely inconveniently legion, and a manageable subset is desired
8497887SLiane.Praza@Sun.COM    for presentation in a user interface.
8507887SLiane.Praza@Sun.COM-->
8517887SLiane.Praza@Sun.COM
8527887SLiane.Praza@Sun.COM<!ELEMENT choices
8537887SLiane.Praza@Sun.COM	( value*, range*, include_values* ) >
8547887SLiane.Praza@Sun.COM
8557887SLiane.Praza@Sun.COM<!ATTLIST choices>
8567887SLiane.Praza@Sun.COM
8577887SLiane.Praza@Sun.COM<!--
8587887SLiane.Praza@Sun.COM  prop_pattern
8597887SLiane.Praza@Sun.COM
8607887SLiane.Praza@Sun.COM
8617887SLiane.Praza@Sun.COM    The prop_pattern describes one property of the enclosing property group
8627887SLiane.Praza@Sun.COM    pattern.
8637887SLiane.Praza@Sun.COM
8647887SLiane.Praza@Sun.COM    Its attributes are:
8657887SLiane.Praza@Sun.COM
8667887SLiane.Praza@Sun.COM	name    The property's name.
8677887SLiane.Praza@Sun.COM	type    The property's type.
8687887SLiane.Praza@Sun.COM	required
8697887SLiane.Praza@Sun.COM		If the property group is present, this property is required.
8707887SLiane.Praza@Sun.COM
8717887SLiane.Praza@Sun.COM	type can be omitted if required is false.
8727887SLiane.Praza@Sun.COM-->
8737887SLiane.Praza@Sun.COM
8747887SLiane.Praza@Sun.COM<!ELEMENT prop_pattern
8757887SLiane.Praza@Sun.COM	( common_name?, description?, units?, visibility?, cardinality?,
8767887SLiane.Praza@Sun.COM	  internal_separators?, values?, constraints?, choices? ) >
8777887SLiane.Praza@Sun.COM
8787887SLiane.Praza@Sun.COM<!ATTLIST prop_pattern
8797887SLiane.Praza@Sun.COM	name		CDATA	#REQUIRED
8807887SLiane.Praza@Sun.COM	type		( count | integer | opaque | host | hostname |
88112691SAntonello.Cruz@Sun.COM			net_address | net_address_v4 | net_address_v6 | time |
88212691SAntonello.Cruz@Sun.COM			astring | ustring | boolean | fmri | uri ) #IMPLIED
8837887SLiane.Praza@Sun.COM	required	( true | false )	"false" >
8847887SLiane.Praza@Sun.COM
8857887SLiane.Praza@Sun.COM<!--
8867887SLiane.Praza@Sun.COM  pg_pattern
8877887SLiane.Praza@Sun.COM
8887887SLiane.Praza@Sun.COM    The pg_pattern describes one property group.
8897887SLiane.Praza@Sun.COM    Depending on the element's attributes, these descriptions may apply
8907887SLiane.Praza@Sun.COM    to just the enclosing service/instance, instances of the enclosing
8917887SLiane.Praza@Sun.COM    service, delegates of the service (assuming it is a restarter), or
8927887SLiane.Praza@Sun.COM    all services.
8937887SLiane.Praza@Sun.COM
8947887SLiane.Praza@Sun.COM    Its attributes are:
8957887SLiane.Praza@Sun.COM
8967887SLiane.Praza@Sun.COM	name    The property group's name.  If not specified, it
8977887SLiane.Praza@Sun.COM		matches all property groups with the specified type.
8987887SLiane.Praza@Sun.COM	type    The property group's type.  If not specified, it
8997887SLiane.Praza@Sun.COM		matches all property groups with the specified name.
9007887SLiane.Praza@Sun.COM	required
9017887SLiane.Praza@Sun.COM		If the property group is required.
9027887SLiane.Praza@Sun.COM	target	The scope of the pattern, which may be all, delegate,
9037887SLiane.Praza@Sun.COM		instance, or this.  'all' is reserved for framework use
9047887SLiane.Praza@Sun.COM		and applies the template to all services on the system.
9057887SLiane.Praza@Sun.COM		'delegate' is reserved for restarters, and means the
9067887SLiane.Praza@Sun.COM		template applies to all services which use the restarter.
9077887SLiane.Praza@Sun.COM		'this' would refer to the defining service or instance.
9087887SLiane.Praza@Sun.COM		'instance' can only be used in a service's template block,
9097887SLiane.Praza@Sun.COM		and means the definition applies to all instances of this
9107887SLiane.Praza@Sun.COM		service.
9117887SLiane.Praza@Sun.COM
9127887SLiane.Praza@Sun.COM-->
9137887SLiane.Praza@Sun.COM
9147887SLiane.Praza@Sun.COM<!ELEMENT pg_pattern
9157887SLiane.Praza@Sun.COM	( common_name?, description?, prop_pattern* ) >
9167887SLiane.Praza@Sun.COM
9177887SLiane.Praza@Sun.COM<!ATTLIST pg_pattern
9187887SLiane.Praza@Sun.COM	name		CDATA	""
9197887SLiane.Praza@Sun.COM	type		CDATA	""
9207887SLiane.Praza@Sun.COM	required	( true | false )	"false"
9217887SLiane.Praza@Sun.COM	target		( this | instance | delegate | all )	"this" >
9227887SLiane.Praza@Sun.COM
9237887SLiane.Praza@Sun.COM<!--
9240Sstevel@tonic-gate  template
9250Sstevel@tonic-gate
9260Sstevel@tonic-gate    The template contains a collection of metadata about the service.
9270Sstevel@tonic-gate    It contains a localizable string that serves as a common,
9280Sstevel@tonic-gate    human-readable name for the service.  (This name should be less than
9290Sstevel@tonic-gate    60 characters in a single byte locale.)  The template may optionally
9300Sstevel@tonic-gate    contain a longer localizable description of the service, a
9310Sstevel@tonic-gate    collection of links to documentation, either in the form of manual
9320Sstevel@tonic-gate    pages or in the form of URI specifications to external documentation
9330Sstevel@tonic-gate    sources (such as docs.sun.com).
9340Sstevel@tonic-gate
9350Sstevel@tonic-gate    The template has no attributes.
9360Sstevel@tonic-gate-->
9370Sstevel@tonic-gate<!ELEMENT template
9387887SLiane.Praza@Sun.COM        ( common_name, description?, documentation?, pg_pattern* ) >
9390Sstevel@tonic-gate
9400Sstevel@tonic-gate<!ATTLIST template>
9410Sstevel@tonic-gate
942*12967Sgavin.maltby@oracle.com<!-- Notification Parameters -->
943*12967Sgavin.maltby@oracle.com
944*12967Sgavin.maltby@oracle.com<!ELEMENT paramval EMPTY>
945*12967Sgavin.maltby@oracle.com
946*12967Sgavin.maltby@oracle.com<!ATTLIST paramval
947*12967Sgavin.maltby@oracle.com	name		CDATA #REQUIRED
948*12967Sgavin.maltby@oracle.com	value		CDATA #REQUIRED>
949*12967Sgavin.maltby@oracle.com
950*12967Sgavin.maltby@oracle.com<!ELEMENT parameter
951*12967Sgavin.maltby@oracle.com	( value_node* )>
952*12967Sgavin.maltby@oracle.com
953*12967Sgavin.maltby@oracle.com<!ATTLIST parameter
954*12967Sgavin.maltby@oracle.com	name		CDATA #REQUIRED>
955*12967Sgavin.maltby@oracle.com
956*12967Sgavin.maltby@oracle.com<!ELEMENT event EMPTY>
957*12967Sgavin.maltby@oracle.com
958*12967Sgavin.maltby@oracle.com<!ATTLIST event
959*12967Sgavin.maltby@oracle.com	value		CDATA #REQUIRED>
960*12967Sgavin.maltby@oracle.com
961*12967Sgavin.maltby@oracle.com<!ELEMENT type
962*12967Sgavin.maltby@oracle.com	( ( parameter | paramval )* )>
963*12967Sgavin.maltby@oracle.com
964*12967Sgavin.maltby@oracle.com<!ATTLIST type
965*12967Sgavin.maltby@oracle.com	name		CDATA #REQUIRED
966*12967Sgavin.maltby@oracle.com	active		( true | false ) "true" >
967*12967Sgavin.maltby@oracle.com
968*12967Sgavin.maltby@oracle.com<!--
969*12967Sgavin.maltby@oracle.com  notification parameters
970*12967Sgavin.maltby@oracle.com
971*12967Sgavin.maltby@oracle.com    This element sets the notification parameters for Software Events and
972*12967Sgavin.maltby@oracle.com    Fault Management problem lifecycle events.
973*12967Sgavin.maltby@oracle.com-->
974*12967Sgavin.maltby@oracle.com
975*12967Sgavin.maltby@oracle.com<!ELEMENT notification_parameters
976*12967Sgavin.maltby@oracle.com	( event, type+ )>
977*12967Sgavin.maltby@oracle.com
978*12967Sgavin.maltby@oracle.com<!ATTLIST notification_parameters>
979*12967Sgavin.maltby@oracle.com
9800Sstevel@tonic-gate<!-- Services and instances -->
9810Sstevel@tonic-gate
9820Sstevel@tonic-gate<!--
9830Sstevel@tonic-gate  create_default_instance
9840Sstevel@tonic-gate
9850Sstevel@tonic-gate    A flag element indicating that an otherwise empty default instance
9860Sstevel@tonic-gate    of this service (named "default") should be created at install, with
9870Sstevel@tonic-gate    its enabled property set as given.
9880Sstevel@tonic-gate
9890Sstevel@tonic-gate    Its attribute is
9900Sstevel@tonic-gate
9910Sstevel@tonic-gate	enabled	[boolean] The initial value for the enabled state of
9920Sstevel@tonic-gate		this instance.
9930Sstevel@tonic-gate-->
9940Sstevel@tonic-gate
9950Sstevel@tonic-gate<!ELEMENT create_default_instance EMPTY >
9960Sstevel@tonic-gate
9970Sstevel@tonic-gate<!ATTLIST create_default_instance
9980Sstevel@tonic-gate	enabled		( true | false ) #REQUIRED >
9990Sstevel@tonic-gate
10000Sstevel@tonic-gate<!--
10010Sstevel@tonic-gate  single_instance
10020Sstevel@tonic-gate
10030Sstevel@tonic-gate    A flag element stating that this service can only have a single
10040Sstevel@tonic-gate    instance on a particular system.
10050Sstevel@tonic-gate-->
10060Sstevel@tonic-gate
10070Sstevel@tonic-gate<!ELEMENT single_instance EMPTY>
10080Sstevel@tonic-gate
10090Sstevel@tonic-gate<!ATTLIST single_instance>
10100Sstevel@tonic-gate
10110Sstevel@tonic-gate<!--
10120Sstevel@tonic-gate  instance
10130Sstevel@tonic-gate
10140Sstevel@tonic-gate    The service instance is the object representing a software component
10150Sstevel@tonic-gate    that will run on the system if enabled.  It contains an enabled
10160Sstevel@tonic-gate    element, a set of dependencies on other services, potentially
10170Sstevel@tonic-gate    customized methods or configuration data, an optional method
10180Sstevel@tonic-gate    context, and a pointer to its restarter.  (If no restarter is
10190Sstevel@tonic-gate    specified, the master restarter, svc.startd(1M), is assumed to be
10200Sstevel@tonic-gate    responsible for the service.)
10210Sstevel@tonic-gate
10220Sstevel@tonic-gate    Its attributes are
10230Sstevel@tonic-gate
10240Sstevel@tonic-gate	name	The canonical name for this instance of the service.
10250Sstevel@tonic-gate
10260Sstevel@tonic-gate	enabled	[boolean] The initial value for the enabled state of
10270Sstevel@tonic-gate		this instance.
10280Sstevel@tonic-gate-->
10290Sstevel@tonic-gate
10300Sstevel@tonic-gate<!ELEMENT instance
10310Sstevel@tonic-gate	( restarter?, dependency*, dependent*, method_context?,
1032*12967Sgavin.maltby@oracle.com	exec_method*, notification_parameters*, property_group*,
1033*12967Sgavin.maltby@oracle.com	template? ) >
10340Sstevel@tonic-gate
10350Sstevel@tonic-gate<!ATTLIST instance
10360Sstevel@tonic-gate	name		CDATA #REQUIRED
10370Sstevel@tonic-gate	enabled		( true | false ) #REQUIRED >
10380Sstevel@tonic-gate
10390Sstevel@tonic-gate<!--
10400Sstevel@tonic-gate  service
10410Sstevel@tonic-gate
10420Sstevel@tonic-gate    The service contains the set of instances defined by default for
10430Sstevel@tonic-gate    this service, an optional method execution context, any default
10440Sstevel@tonic-gate    methods, the template, and various restrictions or advice applicable
10450Sstevel@tonic-gate    at installation.  The method execution context and template elements
10460Sstevel@tonic-gate    are required for service_bundle documents with type "manifest", but
10470Sstevel@tonic-gate    are optional for "profile" or "archive" documents.
10480Sstevel@tonic-gate
10490Sstevel@tonic-gate    Its attributes are
10500Sstevel@tonic-gate
10510Sstevel@tonic-gate	name	The canonical name for the service.
10520Sstevel@tonic-gate
10530Sstevel@tonic-gate	version	[integer] The integer version for this service.
10540Sstevel@tonic-gate
10550Sstevel@tonic-gate	type	Whether this service is a simple service, a delegated
10560Sstevel@tonic-gate		restarter, or a milestone (a synthetic service that
10570Sstevel@tonic-gate		collects a group of dependencies).
10580Sstevel@tonic-gate-->
10590Sstevel@tonic-gate
10600Sstevel@tonic-gate<!ELEMENT service
10610Sstevel@tonic-gate	( create_default_instance?, single_instance?, restarter?,
10620Sstevel@tonic-gate	dependency*, dependent*, method_context?, exec_method*,
1063*12967Sgavin.maltby@oracle.com	notification_parameters*, property_group*, instance*,
1064*12967Sgavin.maltby@oracle.com	stability?, template? ) >
10650Sstevel@tonic-gate
10660Sstevel@tonic-gate<!ATTLIST service
10670Sstevel@tonic-gate	name		CDATA #REQUIRED
10680Sstevel@tonic-gate	version		CDATA #REQUIRED
10690Sstevel@tonic-gate	type		( service | restarter | milestone ) #REQUIRED >
10700Sstevel@tonic-gate
10710Sstevel@tonic-gate<!--
10720Sstevel@tonic-gate  service_bundle
10730Sstevel@tonic-gate
10740Sstevel@tonic-gate    The bundle possesses two attributes:
10750Sstevel@tonic-gate
10760Sstevel@tonic-gate	type	How this file is to be understood by the framework (or
10770Sstevel@tonic-gate		used in a non-framework compliant way). Standard types
10780Sstevel@tonic-gate		are 'archive', 'manifest', and 'profile'.
10790Sstevel@tonic-gate
10800Sstevel@tonic-gate	name	A name for the bundle.  Manifests should be named after
10810Sstevel@tonic-gate		the package which delivered them; profiles should be
10820Sstevel@tonic-gate		named after the "feature set nickname" they intend to
10830Sstevel@tonic-gate		enable.
10840Sstevel@tonic-gate-->
10850Sstevel@tonic-gate
10860Sstevel@tonic-gate<!ELEMENT service_bundle
10870Sstevel@tonic-gate	( service_bundle* | service* | xi:include* )>
10880Sstevel@tonic-gate
10890Sstevel@tonic-gate<!ATTLIST service_bundle
10900Sstevel@tonic-gate	type		CDATA #REQUIRED
10910Sstevel@tonic-gate	name		CDATA #REQUIRED>
1092