package delete import ( "context" "github.com/peterbourgon/ff/v3" "edge-infra.dev/pkg/edge/api/graph/model" "edge-infra.dev/pkg/edge/edgeadmin/commands/operatorintervention/edgeextension" "edge-infra.dev/pkg/edge/edgecli" "edge-infra.dev/pkg/edge/edgecli/flagutil" "edge-infra.dev/pkg/lib/cli/command" "edge-infra.dev/pkg/lib/cli/rags" ) func NewDeleteRule(cfg *edgecli.Config) *command.Command { var ( edge = &edgeextension.Ext{Cfg: cfg} ) var cmd *command.Command cmd = &command.Command{ ShortUsage: "edge operatorintervention delete rule [--command --privilege ]", ShortHelp: "Removes a single command from the rule defined by the privilege", Options: []ff.Option{}, Flags: []*rags.Rag{ { Name: flagutil.OICommand, Usage: "command to be removed from the rule", Value: &rags.String{}, Required: true, }, { Name: flagutil.OIPrivilege, Usage: "privilege whose rule is to be updated", Value: &rags.String{}, Required: true, }, }, Extensions: []command.Extension{edge}, Exec: func(ctx context.Context, _ []string) error { var mutation struct { DeleteCommandFromOperatorInterventionRule struct { model.DeleteOperatorInterventionRuleResponse } `graphql:"deleteCommandFromOperatorInterventionRule(rule: $rule)"` } var variables = map[string]interface{}{ "rule": model.DeleteOperatorInterventionRuleInput{ Privilege: flagutil.GetStringFlag(cmd.Rags, flagutil.OIPrivilege), Command: flagutil.GetStringFlag(cmd.Rags, flagutil.OICommand), }, } err := edge.Client.Mutate(ctx, &mutation, variables) if err != nil { return err } return handleResponseFormatting( "Rule", mutation.DeleteCommandFromOperatorInterventionRule.Errors, ) }, } return cmd }