summaryrefslogtreecommitdiffstats
path: root/schemas/info.xsd
blob: 5291562c19d24bd0aeaee167344c3abd0266e07a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en">
  <xsd:annotation>
    <xsd:documentation>
      ``info.xml`` schema for Bcfg2
    </xsd:documentation>
  </xsd:annotation>

  <xsd:include schemaLocation="atom.xsd"/>
  <xsd:include schemaLocation="types.xsd"/>

  <xsd:complexType name='InfoType'>
    <xsd:annotation>
      <xsd:documentation>
        The Info tag specifies metadata (ownership, permissions, etc.)
        for entries that are generated by various plugins.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs='0' maxOccurs='unbounded'>
      <xsd:element name='ACL' type='ACLType'/>
    </xsd:choice>
    <xsd:attribute name='encoding' type='xsd:token' default='ascii'>
      <xsd:annotation>
        <xsd:documentation>
          Encoding of the file for tranfer to the client.  Use
          ``base64`` for binary files.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name='group' type='xsd:token' default="root">
      <xsd:annotation>
        <xsd:documentation>
          Sets group of the file.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name='important' type='xsd:boolean' default="false">
      <xsd:annotation>
        <xsd:documentation>
          Important entries are installed first during client
          execution.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name='owner' type='xsd:token' default="root">
      <xsd:annotation>
        <xsd:documentation>
          Sets owner of the file.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name='mode' type='xsd:string' default="0644">
      <xsd:annotation>
        <xsd:documentation>
          Sets the mode of the file from the octal value given.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name='secontext' type='xsd:token' default="__default__">
      <xsd:annotation>
        <xsd:documentation>
          Sets the SELinux context of the file, or sets to the default
          context for that path set by policy if set to the special
          value ``__default__``.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name='paranoid' type='xsd:boolean' default='true'>
      <xsd:annotation>
        <xsd:documentation>
          If true, files that are replaced will be backed up first.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name='sensitive' type='xsd:boolean' default="false">
      <xsd:annotation>
        <xsd:documentation>
          The contents of sensitive entries aren't included in reports.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:complexType name='InfoGroupType'>
    <xsd:annotation>
      <xsd:documentation>
        An **InfoGroupType** is a ``info.xml`` tag used to provide
        logic.  Child entries of such a tag only apply to machines
        that match the condition specified -- membership in a group, a
        matching client name, or a matching path for the file being
        generated.  :xml:attribute:`InfoGroupType:negate` can be set
        to negate the sense of the match.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs='1' maxOccurs='1'>
      <xsd:element name='FileInfo' type="FileInfoType"/>
      <xsd:element name='Info' type='InfoType'/>
      <xsd:element name='Group' type='InfoGroupType' minOccurs='0'
                   maxOccurs='unbounded'/>
      <xsd:element name='Client' type='InfoGroupType' minOccurs='0'
                   maxOccurs='unbounded'/>
      <xsd:element name='Path' type='InfoGroupType' minOccurs='0'
                   maxOccurs='unbounded'/>
    </xsd:choice>
    <xsd:attribute type='xsd:string' name='name' use='required'>
      <xsd:annotation>
        <xsd:documentation>
          The name of the client or group, or the full path to match
          on.  Child entries will only apply to this client or group
          (unless :xml:attribute:`InfoGroupType:negate` is set).
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute type='xsd:boolean' name='negate' default="false">
      <xsd:annotation>
        <xsd:documentation>
          Negate the sense of the match, so that child entries only
          apply to a client if it is not a member of the given group,
          does not have the given client name, or the path names do
          not match.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:complexType name="FileInfoType">
    <xsd:annotation>
      <xsd:documentation>
        Top-level tag for ``info.xml``.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs='0' maxOccurs='unbounded'>
      <xsd:element name='FileInfo' type="FileInfoType"/>
      <xsd:element name='Group' type='InfoGroupType'/>
      <xsd:element name='Client' type='InfoGroupType'/>
      <xsd:element name='Path' type='InfoGroupType'/>
      <xsd:element name='Info' type='InfoType'/>
    </xsd:choice>
    <xsd:attribute name="lax_decryption" type="xsd:boolean">
      <xsd:annotation>
        <xsd:documentation>
          Override the global lax_decryption setting in
          ``bcfg2.conf``.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:element name='FileInfo' type="FileInfoType"/>
</xsd:schema>