github.com/fastly/cli@v1.7.2-0.20240304164155-9d0f1d77c3bf/pkg/commands/logging/kinesis/delete.go (about) 1 package kinesis 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/errors" 10 "github.com/fastly/cli/pkg/global" 11 "github.com/fastly/cli/pkg/text" 12 ) 13 14 // DeleteCommand calls the Fastly API to delete an Amazon Kinesis logging endpoint. 15 type DeleteCommand struct { 16 argparser.Base 17 Input fastly.DeleteKinesisInput 18 serviceName argparser.OptionalServiceNameID 19 serviceVersion argparser.OptionalServiceVersion 20 autoClone argparser.OptionalAutoClone 21 } 22 23 // NewDeleteCommand returns a usable command registered under the parent. 24 func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *DeleteCommand { 25 c := DeleteCommand{ 26 Base: argparser.Base{ 27 Globals: g, 28 }, 29 } 30 c.CmdClause = parent.Command("delete", "Delete a Kinesis logging endpoint on a Fastly service version").Alias("remove") 31 32 // Required. 33 c.CmdClause.Flag("name", "The name of the Kinesis logging object").Short('n').Required().StringVar(&c.Input.Name) 34 c.RegisterFlag(argparser.StringFlagOpts{ 35 Name: argparser.FlagVersionName, 36 Description: argparser.FlagVersionDesc, 37 Dst: &c.serviceVersion.Value, 38 Required: true, 39 }) 40 41 // Optional. 42 c.RegisterAutoCloneFlag(argparser.AutoCloneFlagOpts{ 43 Action: c.autoClone.Set, 44 Dst: &c.autoClone.Value, 45 }) 46 c.RegisterFlag(argparser.StringFlagOpts{ 47 Name: argparser.FlagServiceIDName, 48 Description: argparser.FlagServiceIDDesc, 49 Dst: &g.Manifest.Flag.ServiceID, 50 Short: 's', 51 }) 52 c.RegisterFlag(argparser.StringFlagOpts{ 53 Action: c.serviceName.Set, 54 Name: argparser.FlagServiceName, 55 Description: argparser.FlagServiceDesc, 56 Dst: &c.serviceName.Value, 57 }) 58 59 return &c 60 } 61 62 // Exec invokes the application logic for the command. 63 func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error { 64 serviceID, serviceVersion, err := argparser.ServiceDetails(argparser.ServiceDetailsOpts{ 65 AutoCloneFlag: c.autoClone, 66 APIClient: c.Globals.APIClient, 67 Manifest: *c.Globals.Manifest, 68 Out: out, 69 ServiceNameFlag: c.serviceName, 70 ServiceVersionFlag: c.serviceVersion, 71 VerboseMode: c.Globals.Flags.Verbose, 72 }) 73 if err != nil { 74 c.Globals.ErrLog.AddWithContext(err, map[string]any{ 75 "Service ID": serviceID, 76 "Service Version": errors.ServiceVersion(serviceVersion), 77 }) 78 return err 79 } 80 81 c.Input.ServiceID = serviceID 82 c.Input.ServiceVersion = fastly.ToValue(serviceVersion.Number) 83 84 if err := c.Globals.APIClient.DeleteKinesis(&c.Input); err != nil { 85 c.Globals.ErrLog.Add(err) 86 return err 87 } 88 89 text.Success(out, "Deleted Kinesis logging endpoint %s (service %s version %d)", c.Input.Name, c.Input.ServiceID, c.Input.ServiceVersion) 90 return nil 91 }