diagnostics := []ziva.Item{
{Key: "logging", Name: "Logging"},
{Key: "debug", Name: "Debug"},
{Key: "tracing", Name: "Tracing"},
{Key: "metrics", Name: "Metrics"},
}
rules := map[string]ziva.MultiSelectDependencyRule{
"logging": {
OnSelect: ziva.MultiSelectDependencyActions{
Enable: []string{"debug"},
},
OnDeselect: ziva.MultiSelectDependencyActions{
Disable: []string{"debug"},
ForceClear: []string{"debug", "tracing"},
},
},
"debug": {
OnSelect: ziva.MultiSelectDependencyActions{
ForceSelect: []string{"logging"},
},
},
"tracing": {
OnSelect: ziva.MultiSelectDependencyActions{
ForceSelect: []string{"logging"},
},
},
}
task := ziva.NewMultiSelectTask("Diagnostics", diagnostics).
WithDependencies(rules).
WithDefaultItems([]string{"logging", "metrics"})