aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/resources/schema/admin.rnc
blob: 72764060e0609b61b76c6cb9f3bbb15bf4fa71e2 (plain) (blame)
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
# Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
Admin = AdminV2 | AdminV3 | AdminV4

AdminV2 =
 element admin {
   attribute version { "2.0" } &
   element adminserver { service.attlist }? &
   GenericConfig* &
   LogServer? &
   ConfigServers? &
   AdminSlobroks? &
   AdminMonitoring? &
   Metrics? &
   ClusterControllers? &
   LoggingSpecs? &
   LogForwarding?
 }

AdminV3 =
  element admin {
    attribute version { "3.0"  } &
    GenericConfig* &
    Nodes
  }

AdminV4 =
  element admin {
    attribute version { "4.0"  } &
    AdminV4Slobroks? &
    AdminV4LogServers? &
    GenericConfig* &
    AdminMonitoring? &
    Metrics? &
    LoggingSpecs? &
    LogForwarding?
  }

AdminV4Slobroks =
  element slobroks {
    OptionalDedicatedNodes
  }

AdminV4LogServers =
  element logservers {
    OptionalDedicatedNodes
  }

AdminSlobroks =
   element slobroks {
      element slobrok {
         service.attlist &
         attribute index { xsd:nonNegativeInteger }?
      }+
   }

AdminMonitoring =
   element monitoring {
      attribute interval { xsd:int }?,
      attribute systemname { xsd:string }?
   }

ConfigServer = element configserver {
   service.attlist
}

ConfigServers = element configservers {
   ConfigServer+
}

LogServer = element logserver {
   service.attlist
}

Metrics = element metrics {
    element consumer {
        attribute id { xsd:Name } &
        element metric-set { attribute id { xsd:Name } }* &
        element metric {
            attribute id { xsd:Name } &
            attribute display-name { xsd:Name }?
        }* &
        Cloudwatch?
    }+
}

Cloudwatch = element cloudwatch {
    attribute region { xsd:Name } &
    attribute namespace { xsd:string { pattern = "[\w_\-/#:\.]+" } } &
    (
      element credentials {
            attribute access-key-name { xsd:Name } &
            attribute secret-key-name { xsd:Name }
      }
      |
      element shared-credentials {
          attribute file { string } &
          attribute profile { xsd:Name }?
      }
    )?
}

ClusterControllers = element cluster-controllers {
    attribute standalone-zookeeper { xsd:string  }? &
    element cluster-controller {
       service.attlist
    }+
}

LogForwarding = element logforwarding {
    attribute include-admin { xsd:boolean }? &
    element splunk {
        attribute splunk-home { xsd:string }? &
        attribute deployment-server { xsd:string } &
        attribute client-name { xsd:string } &
        attribute phone-home-interval { xsd:positiveInteger }? &
        attribute role { xsd:string }?
    }
}

LoggingSpecs = element logging {
    (
    element class {
        attribute name { xsd:Name } &
        attribute levels { xsd:string }
    }
    |
    element package {
        attribute name { xsd:Name } &
        attribute levels { xsd:string }
    }
    )*
}