github.com/fastly/cli@v1.7.2-0.20240304164155-9d0f1d77c3bf/pkg/commands/tls/custom/activation/delete.go (about) 1 package activation 2 3 import ( 4 "io" 5 6 "github.com/fastly/go-fastly/v9/fastly" 7 8 "github.com/fastly/cli/pkg/argparser" 9 "github.com/fastly/cli/pkg/global" 10 "github.com/fastly/cli/pkg/text" 11 ) 12 13 // NewDeleteCommand returns a usable command registered under the parent. 14 func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *DeleteCommand { 15 var c DeleteCommand 16 c.CmdClause = parent.Command("disable", "Disable TLS on the domain associated with this TLS activation").Alias("remove") 17 c.Globals = g 18 19 // Required. 20 c.CmdClause.Flag("id", "Alphanumeric string identifying a TLS activation").Required().StringVar(&c.id) 21 22 return &c 23 } 24 25 // DeleteCommand calls the Fastly API to delete an appropriate resource. 26 type DeleteCommand struct { 27 argparser.Base 28 29 id string 30 } 31 32 // Exec invokes the application logic for the command. 33 func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error { 34 input := c.constructInput() 35 36 err := c.Globals.APIClient.DeleteTLSActivation(input) 37 if err != nil { 38 c.Globals.ErrLog.AddWithContext(err, map[string]any{ 39 "TLS Activation ID": c.id, 40 }) 41 return err 42 } 43 44 text.Success(out, "Disabled TLS Activation '%s'", c.id) 45 return nil 46 } 47 48 // constructInput transforms values parsed from CLI flags into an object to be used by the API client library. 49 func (c *DeleteCommand) constructInput() *fastly.DeleteTLSActivationInput { 50 var input fastly.DeleteTLSActivationInput 51 52 input.ID = c.id 53 54 return &input 55 }