-
Notifications
You must be signed in to change notification settings - Fork 66
/
FeatureFlag.v1.1.0.schema.json
132 lines (132 loc) · 4.42 KB
/
FeatureFlag.v1.1.0.schema.json
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
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://azconfig.io/schemas/FeatureManagement/v1.1.0/FeatureFlag.json",
"type": "object",
"title": "An Azure App Configuration Feature Declaration",
"required": [
"id",
"enabled"
],
"properties": {
"id": {
"$id": "#/properties/id",
"type": "string",
"title": "Feature ID",
"description": "An ID used to uniquely identify and reference the feature.",
"examples": [
"fancy-background"
],
"pattern": "^(.*)$"
},
"description": {
"$id": "#/properties/description",
"type": "string",
"title": "Feature Description",
"description": "A description of the feature.",
"default": "",
"examples": [
"This will display a fancy background on the home page."
],
"pattern": "^[a-zA-Z0-9_\\-\\.]*$"
},
"display_name": {
"$id": "#/properties/display_name",
"type": "string",
"title": "Feature Display Name",
"description": "A display name for the feature to use for display rather than the ID.",
"default": "",
"examples": [
"Fancy Background"
],
"pattern": "^(.*)$"
},
"enabled": {
"$id": "#/properties/enabled",
"type": "boolean",
"title": "Enabled State",
"description": "A feature is OFF if enabled is false. If enabled is true, then the feature is ON if there are no conditions (null or empty) or if the conditions are satisfied.",
"default": false
},
"conditions": {
"$id": "#/properties/conditions",
"type": "object",
"title": "Feature Enablement Conditions",
"description": "The declaration of conditions used to dynamically enable features.",
"required": [],
"properties": {
"requirement_type": {
"$id": "#/properties/conditions/properties/requirement_type",
"type": "string",
"title": "Requirement Type",
"description": "Determines whether any or all registered client filters must be evaluated as true for the feature to be considered enabled.",
"enum": [
"Any",
"All"
],
"default": "Any"
},
"client_filters": {
"$id": "#/properties/conditions/properties/client_filters",
"type": "array",
"title": "Client Filter Collection",
"description": "Filters that must run on the client and be evaluated as true for the feature to be considered enabled.",
"items": {
"$id": "#/properties/conditions/properties/client_filters/items",
"type": "object",
"title": "Client Filter",
"required": [
"name"
],
"properties": {
"name": {
"$id": "#/properties/conditions/properties/client_filters/items/properties/name",
"type": "string",
"title": "Client Filter Name",
"description": "The name used to refer to and require a client filter.",
"default": "",
"examples": [
"Percentage",
"TimeWindow"
],
"pattern": "^(.*)$"
},
"parameters": {
"$id": "#/properties/conditions/properties/client_filters/items/properties/parameters",
"type": "object",
"title": "Client Filter Parameters",
"description": "Custom parameters for a given client filter. A client filter can require any set of parameters of any type.",
"required": [],
"patternProperties": {
"^.*$": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
},
{
"type": "object"
},
{
"type": "number"
},
{
"type": "array"
},
{
"type": "boolean"
}
]
}
},
"additionalProperties": false
}
}
}
}
}
}
}
}