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

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

var destroyAwsRegionK8sArgs = internal.DestroyAwsRegionK8sArgs{}

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

For example:
deploy-cli destroy-aws-region-k8s \
    --region-name us-west-2-test1 \
	--cloud-region us-west-2      \
	--meta-uri s3://xxxx          \
	--role-arn arn:xxx            \
`,
	RunE: func(cmd *cobra.Command, _ []string) error {
		destroyAwsRegionK8sArgs.InstanceName = instance
		destroyAwsRegionK8sArgs.OidcProviderType = oidcProvider
		return internal.DestroyAwsRegionK8s(destroyAwsRegionK8sArgs)
	},
}

func init() {
	rootCmd.AddCommand(destroyAwsRegionK8sCmd)
	destroyAwsRegionK8sCmd.Flags().StringVarP(&destroyAwsRegionK8sArgs.RegionName, "region-name", "n", "", "Deployed region name")
	destroyAwsRegionK8sCmd.Flags().StringVarP(&destroyAwsRegionK8sArgs.MetaURI, "meta-uri", "", "", "Where to store or read metadata of this region")
	destroyAwsRegionK8sCmd.Flags().StringVarP(&destroyAwsRegionK8sArgs.RoleArn, "role-arn", "", "", "AWS role arn to read meta")
	destroyAwsRegionK8sCmd.Flags().StringVarP(&destroyAwsRegionK8sArgs.Region, "cloud-region", "r", "", "Cloud region (location) to destroy k8s, for example: us-west-2, eu-central-1")
	destroyAwsRegionK8sCmd.Flags().StringVarP(&destroyAwsRegionK8sArgs.DeployType, "deploy-type", "", "DEPLOY_TYPE_DEDICATED", "Which type of region to deploy, default is dedicated, can be DEPLOY_TYPE_DEDICATED, DEPLOY_TYPE_NEXTGEN")
	// mark required flag
	for _, flag := range []string{"region-name", "meta-uri", "role-arn", "cloud-region", "deploy-type"} {
		destroyAwsRegionK8sCmd.MarkFlagRequired(flag)
	}
}
