aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/resources/schema/federation.rnc
blob: a2ddff55efcae0dbd6d1f8864a833ba781a28d35 (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
# Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
# Schema for federation configuration inside the searchchains section.

GenericSource =
    SearchChainInFederation &
    FederationOptions?

Source =
    element source {
        GenericSource
    }

Provider =
    element provider {
        GenericSource &
        attribute cachesize { xsd:string { pattern = "\d+(\.\d*)?\s*[kmgKMG]?" } }? &
        attribute type { xsd:string }? &
        attribute cluster { xsd:string }? &

        HttpProviderSearcherOptions &

        Source*
    }

HttpProviderSearcherOptions =
    attribute cacheweight { xsd:float { minInclusive = "0" } }? &
    attribute path { xsd:string }? &
    attribute readtimeout { xsd:string { pattern = "\d+(\.\d*)?\s*m?s" } }? &
    attribute connectiontimeout { xsd:string { pattern = "\d+(\.\d*)?\s*m?s" } }? &
    attribute connectionpooltimeout { xsd:string { pattern = "\d+(\.\d*)?\s*m?s" } }? &
    attribute retries { xsd:int }? &
    element nodes {
        element node {
            attribute host { xsd:string } &
            attribute port { xsd:int }
        }+
   } ?

FederationOptions =
    element federationoptions {
        attribute optional { xsd:boolean }? &
        attribute timeout { xsd:string { pattern = "\d+(\.\d*)?\s*m?s" } }? &
        attribute requestTimeout { xsd:string { pattern = "\d+(\.\d*)?\s*m?s" } }? &
        attribute default { xsd:boolean }?
    }

FederationSearcher =
    element federation {
        GenericSearcherOrDocumentProcessor &
        element source {
            ComponentSpec &
            FederationOptions?
        }* &
        element target-selector {
            ComponentDefinition
        }? &
        element source-set {
          attribute inherits { string "default" }
        }?
    }