33 "$schema" : " http://json-schema.org/draft-07/schema#" ,
44 "type" : " object" ,
55 "title" : " A .NET Feature Management Configuration" ,
6- "required" : [],
7- "patternProperties" : {
8- "^[^:]*$" : {
9- "description" : " Declares a feature flag." ,
10- "anyOf" : [
11- {
12- "type" : " boolean" ,
13- "title" : " On/Off Feature Flag" ,
14- "description" : " A feature flag that always returns the same value."
15- },
16- {
17- "type" : " object" ,
18- "title" : " Conditional Feature Flag" ,
19- "description" : " A feature flag which value is dynamic based on a set of feature filters" ,
20- "required" : [
21- " EnabledFor"
22- ],
23- "properties" : {
24- "RequirementType" : {
25- "type" : " string" ,
26- "title" : " Requirement Type" ,
27- "description" : " Determines whether any or all registered feature filters must be enabled for the feature to be considered enabled." ,
28- "enum" : [
29- " Any" ,
30- " All"
31- ],
32- "default" : " Any"
6+ "required" : [
7+ " FeatureManagement"
8+ ],
9+ "properties" :{
10+ "FeatureManagement" : {
11+ "type" : " object" ,
12+ "title" : " Feature Management" ,
13+ "description" : " Declares feature management configuration." ,
14+ "required" : [],
15+ "patternProperties" : {
16+ "^[^:]*$" : {
17+ "description" : " Declares a feature flag." ,
18+ "anyOf" : [
19+ {
20+ "type" : " boolean" ,
21+ "title" : " On/Off Feature Flag" ,
22+ "description" : " A feature flag that always returns the same value."
3323 },
34- "EnabledFor" : {
35- "oneOf " : [
36- {
37- "type " : " array " ,
38- "title " : " Feature Filter Collection " ,
39- "description" : " Feature filters that are evaluated to conditionally enable the flag. " ,
40- "items" : {
41- "type " : " object " ,
42- "title " : " Feature Filter Declaration " ,
43- "required " : [
44- " Name "
45- ] ,
46- "properties " : {
47- "Name" : {
48- "type" : " string " ,
49- "title" : " Feature Filter Name " ,
50- "description " : " The name used to refer to and require a feature filter. " ,
51- "default" : " " ,
52- "examples " : [
53- " Percentage " ,
54- " TimeWindow "
55- ] ,
56- "pattern " : " ^[^:]*$ "
57- } ,
58- "Parameters " : {
24+ {
25+ "type " : " object " ,
26+ "title" : " Conditional Feature Flag " ,
27+ "description " : " A feature flag which value is dynamic based on a set of feature filters " ,
28+ "required " : [
29+ " EnabledFor "
30+ ],
31+ "properties " : {
32+ "RequirementType " : {
33+ "type " : " string " ,
34+ "title" : " Requirement Type " ,
35+ "description" : " Determines whether any or all registered feature filters must be enabled for the feature to be considered enabled. " ,
36+ "enum " : [
37+ " Any " ,
38+ " All "
39+ ] ,
40+ "default " : " Any "
41+ } ,
42+ "EnabledFor " : {
43+ "oneOf" : [
44+ {
45+ "type" : " array " ,
46+ "title " : " Feature Filter Collection " ,
47+ "description" : " Feature filters that are evaluated to conditionally enable the flag. " ,
48+ "items " : {
5949 "type" : " object" ,
60- "title" : " Feature Filter Parameters" ,
61- "description" : " Custom parameters for a given feature filter. A feature filter can require any set of parameters of any type." ,
62- "required" : [],
63- "patternProperties" : {
64- "^.*$" : {
65- "anyOf" : [
66- {
67- "type" : " string"
68- },
69- {
70- "type" : " null"
71- },
72- {
73- "type" : " object"
74- },
75- {
76- "type" : " number"
77- },
78- {
79- "type" : " array"
80- },
81- {
82- "type" : " boolean"
50+ "title" : " Feature Filter Declaration" ,
51+ "required" : [
52+ " Name"
53+ ],
54+ "properties" : {
55+ "Name" : {
56+ "type" : " string" ,
57+ "title" : " Feature Filter Name" ,
58+ "description" : " The name used to refer to and require a feature filter." ,
59+ "default" : " " ,
60+ "examples" : [
61+ " Percentage" ,
62+ " TimeWindow"
63+ ],
64+ "pattern" : " ^[^:]*$"
65+ },
66+ "Parameters" : {
67+ "type" : " object" ,
68+ "title" : " Feature Filter Parameters" ,
69+ "description" : " Custom parameters for a given feature filter. A feature filter can require any set of parameters of any type." ,
70+ "required" : [],
71+ "patternProperties" : {
72+ "^.*$" : {
73+ "anyOf" : [
74+ {
75+ "type" : " string"
76+ },
77+ {
78+ "type" : " null"
79+ },
80+ {
81+ "type" : " object"
82+ },
83+ {
84+ "type" : " number"
85+ },
86+ {
87+ "type" : " array"
88+ },
89+ {
90+ "type" : " boolean"
91+ }
92+ ]
8393 }
84- ]
94+ }
8595 }
8696 }
8797 }
98+ },
99+ {
100+ "type" : " boolean"
88101 }
89- }
102+ ]
90103 },
91- {
92- "type" : " boolean"
93- }
94- ]
95- },
96- "additionalProperties" : false
97- }
104+ "additionalProperties" : false
105+ }
106+ }
107+ ]
98108 }
99- ]
109+ }
100110 }
101111 }
102- }
112+ }
0 commit comments