/*
Copyright © 2024 NAME HERE <EMAIL ADDRESS>
*/
package cmd

import (
	"github.com/spf13/cobra"
	"github.com/tidbcloud/auto-deploy/internal"
)

var destroyO11yAwsRegionK8sArgs = internal.DestroyAwsRegionK8sArgs{}

// destroyO11yAwsRegionK8sCmd represents the destroy-o11y-aws-region command
var destroyO11yAwsRegionK8sCmd = &cobra.Command{
	Use:   "destroy-o11y-aws-region",
	Short: "Destroy O11y AWS region k8s after deploy",
	Long: `Destroy O11y AWS region k8s after deploy

For example:
deploy-cli destroy-o11y-aws-region \
    --region-name us-west-2
`,
	RunE: func(cmd *cobra.Command, _ []string) error {
		destroyO11yAwsRegionK8sArgs.InstanceName = instance
		destroyO11yAwsRegionK8sArgs.OidcProviderType = oidcProvider
		return internal.DestroyO11yAwsRegionK8s(destroyO11yAwsRegionK8sArgs)
	},
}

func init() {
	rootCmd.AddCommand(destroyO11yAwsRegionK8sCmd)
	destroyO11yAwsRegionK8sCmd.Flags().StringVarP(&destroyO11yAwsRegionK8sArgs.Region, "region", "", "", "Deployed region name")
	destroyO11yAwsRegionK8sCmd.Flags().StringVarP(&destroyO11yAwsRegionK8sArgs.RegionName, "logic-region-name", "", "", "Logic region name")
	destroyO11yAwsRegionK8sCmd.Flags().StringVarP(&destroyO11yAwsRegionK8sArgs.MetaURI, "meta-uri", "", "", "Where to store or read metadata of this region")
	destroyO11yAwsRegionK8sCmd.Flags().StringVarP(&destroyO11yAwsRegionK8sArgs.RoleArn, "role-arn", "", "", "AWS role arn to read meta")

	// mark required flag
	for _, flag := range []string{"region", "meta-uri", "logic-region-name", "role-arn"} {
		destroyO11yAwsRegionK8sCmd.MarkFlagRequired(flag)
	}
}
