package projectaction

import (
	"context"
	"fmt"
	"strings"

	opent "github.com/tidbcloud/devops/entity/operation"
	"github.com/tidbcloud/devops/pkg/service/operation/actions"
	globalcommonv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/common/v1"
	mgmtv1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_mgmt_service/v1"
)

var (
	ActionAddSecondaryCidr opent.ActionMetadata = opent.ActionMetadata{
		Name: "AddSecondaryCIDR",
		Type: opent.ActionTypeAuto,
	}
)

type addSecondaryCidr struct {
	actions.BaseAction
	comps *actions.Components
}

func NewAddSecondaryCidr(comps *actions.Components) actions.AutoAction {
	return &addSecondaryCidr{comps: comps}
}

func (a *addSecondaryCidr) Metadata() opent.ActionMetadata {
	return ActionAddSecondaryCidr
}

func (a *addSecondaryCidr) PreCheck(ctx context.Context, instance *opent.Instance) error {
	param, err := a.getParam(instance)
	if err != nil {
		return err
	}
	param.ValidateOnly = true
	_, err = a.comps.ProjectAPI.AddSecondaryCidr(ctx, param)
	if err != nil {
		return err
	}
	return nil
}

func (a *addSecondaryCidr) Start(ctx context.Context, instance *opent.Instance) (*actions.ActionResult, error) {
	param, err := a.getParam(instance)
	if err != nil {
		return actions.FailedActionResult(err), nil
	}

	_, err = a.comps.ProjectAPI.AddSecondaryCidr(ctx, param)
	if err != nil {
		return actions.FailedActionResult(err), nil
	}

	return actions.SucceededActionResult(nil), nil
}

func (a *addSecondaryCidr) Result(ctx context.Context, instance *opent.Instance) (*actions.ActionResult, error) {
	// TODO: verify secondary cidr is added successfully
	return actions.SucceededActionResult(nil), nil
}

func (a *addSecondaryCidr) getParam(instance *opent.Instance) (*mgmtv1.AddSecondaryCidrRequest, error) {
	oid, err := actions.GetTenantID(instance)
	if err != nil {
		return nil, err
	}

	pid, err := actions.GetProjectID(instance)
	if err != nil {
		return nil, err
	}

	vpcID, _ := instance.GetParam(opent.ParamVPCID)
	if len(vpcID) == 0 {
		return nil, fmt.Errorf("vpc_id is required")
	}

	cidr, _ := instance.GetParam(opent.ParamSecondaryCIDR)
	if len(cidr) == 0 {
		return nil, fmt.Errorf("secondary_cidr is required")
	}

	provider, _ := instance.GetParam(opent.ParamProvider)
	if len(provider) == 0 {
		return nil, fmt.Errorf("cloud_provider is required")
	}

	region, _ := instance.GetParam(opent.ParamRegion)
	if len(region) == 0 {
		return nil, fmt.Errorf("region is required")
	}

	providerName, regionName := getProviderAndRegion(provider, region)
	param := &mgmtv1.AddSecondaryCidrRequest{
		VpcId:             vpcID,
		SecondaryCidr:     cidr,
		ProjectId:         pid,
		OrganizationId:    oid,
		CloudProviderName: providerName,
		RegionName:        regionName,
		ValidateOnly:      false,
	}
	return param, nil
}

func getProviderAndRegion(provider, region string) (globalcommonv1.CloudProvider_Name, globalcommonv1.Region_Name) {
	providerName := globalcommonv1.CloudProvider_NAME_UNSPECIFIED
	regionName := globalcommonv1.Region_NAME_UNSPECIFIED
	switch provider {
	case "aws":
		providerName = globalcommonv1.CloudProvider_AWS
	case "gcp":
		providerName = globalcommonv1.CloudProvider_GCP
	case "azure":
		providerName = globalcommonv1.CloudProvider_AZURE
	case "alicloud":
		providerName = globalcommonv1.CloudProvider_ALICLOUD
	}

	if providerName == globalcommonv1.CloudProvider_NAME_UNSPECIFIED {
		return providerName, regionName
	}

	providerUpper := strings.ToUpper(provider)
	regionUpper := strings.ReplaceAll(strings.ToUpper(region), "-", "_")

	constName := "Region_" + providerUpper + "_" + regionUpper
	regionName, ok := regionNameMap[constName]
	if !ok {
		return providerName, globalcommonv1.Region_NAME_UNSPECIFIED
	}

	return providerName, regionName
}

var regionNameMap = map[string]globalcommonv1.Region_Name{
	"Region_NAME_UNSPECIFIED": globalcommonv1.Region_NAME_UNSPECIFIED,
	// AWS
	"Region_AWS_US_EAST_2":      globalcommonv1.Region_AWS_US_EAST_2,
	"Region_AWS_US_EAST_1":      globalcommonv1.Region_AWS_US_EAST_1,
	"Region_AWS_US_WEST_1":      globalcommonv1.Region_AWS_US_WEST_1,
	"Region_AWS_US_WEST_2":      globalcommonv1.Region_AWS_US_WEST_2,
	"Region_AWS_AF_SOUTH_1":     globalcommonv1.Region_AWS_AF_SOUTH_1,
	"Region_AWS_AP_EAST_1":      globalcommonv1.Region_AWS_AP_EAST_1,
	"Region_AWS_AP_SOUTH_2":     globalcommonv1.Region_AWS_AP_SOUTH_2,
	"Region_AWS_AP_SOUTHEAST_3": globalcommonv1.Region_AWS_AP_SOUTHEAST_3,
	"Region_AWS_AP_SOUTHEAST_4": globalcommonv1.Region_AWS_AP_SOUTHEAST_4,
	"Region_AWS_AP_SOUTH_1":     globalcommonv1.Region_AWS_AP_SOUTH_1,
	"Region_AWS_AP_NORTHEAST_3": globalcommonv1.Region_AWS_AP_NORTHEAST_3,
	"Region_AWS_AP_NORTHEAST_2": globalcommonv1.Region_AWS_AP_NORTHEAST_2,
	"Region_AWS_AP_SOUTHEAST_1": globalcommonv1.Region_AWS_AP_SOUTHEAST_1,
	"Region_AWS_AP_SOUTHEAST_2": globalcommonv1.Region_AWS_AP_SOUTHEAST_2,
	"Region_AWS_AP_NORTHEAST_1": globalcommonv1.Region_AWS_AP_NORTHEAST_1,
	"Region_AWS_CA_CENTRAL_1":   globalcommonv1.Region_AWS_CA_CENTRAL_1,
	"Region_AWS_CA_WEST_1":      globalcommonv1.Region_AWS_CA_WEST_1,
	"Region_AWS_EU_CENTRAL_1":   globalcommonv1.Region_AWS_EU_CENTRAL_1,
	"Region_AWS_EU_WEST_1":      globalcommonv1.Region_AWS_EU_WEST_1,
	"Region_AWS_EU_WEST_2":      globalcommonv1.Region_AWS_EU_WEST_2,
	"Region_AWS_EU_SOUTH_1":     globalcommonv1.Region_AWS_EU_SOUTH_1,
	"Region_AWS_EU_WEST_3":      globalcommonv1.Region_AWS_EU_WEST_3,
	"Region_AWS_EU_SOUTH_2":     globalcommonv1.Region_AWS_EU_SOUTH_2,
	"Region_AWS_EU_NORTH_1":     globalcommonv1.Region_AWS_EU_NORTH_1,
	"Region_AWS_EU_CENTRAL_2":   globalcommonv1.Region_AWS_EU_CENTRAL_2,
	"Region_AWS_IL_CENTRAL_1":   globalcommonv1.Region_AWS_IL_CENTRAL_1,
	"Region_AWS_ME_SOUTH_1":     globalcommonv1.Region_AWS_ME_SOUTH_1,
	"Region_AWS_ME_CENTRAL_1":   globalcommonv1.Region_AWS_ME_CENTRAL_1,
	"Region_AWS_SA_EAST_1":      globalcommonv1.Region_AWS_SA_EAST_1,
	"Region_AWS_AP_SOUTHEAST_5": globalcommonv1.Region_AWS_AP_SOUTHEAST_5,
	// GCP
	"Region_GCP_ASIA_EAST1":              globalcommonv1.Region_GCP_ASIA_EAST1,
	"Region_GCP_ASIA_EAST2":              globalcommonv1.Region_GCP_ASIA_EAST2,
	"Region_GCP_ASIA_NORTHEAST1":         globalcommonv1.Region_GCP_ASIA_NORTHEAST1,
	"Region_GCP_ASIA_NORTHEAST2":         globalcommonv1.Region_GCP_ASIA_NORTHEAST2,
	"Region_GCP_ASIA_NORTHEAST3":         globalcommonv1.Region_GCP_ASIA_NORTHEAST3,
	"Region_GCP_ASIA_SOUTH1":             globalcommonv1.Region_GCP_ASIA_SOUTH1,
	"Region_GCP_ASIA_SOUTH2":             globalcommonv1.Region_GCP_ASIA_SOUTH2,
	"Region_GCP_ASIA_SOUTHEAST1":         globalcommonv1.Region_GCP_ASIA_SOUTHEAST1,
	"Region_GCP_ASIA_SOUTHEAST2":         globalcommonv1.Region_GCP_ASIA_SOUTHEAST2,
	"Region_GCP_AUSTRALIA_SOUTHEAST1":    globalcommonv1.Region_GCP_AUSTRALIA_SOUTHEAST1,
	"Region_GCP_AUSTRALIA_SOUTHEAST2":    globalcommonv1.Region_GCP_AUSTRALIA_SOUTHEAST2,
	"Region_GCP_EUROPE_CENTRAL2":         globalcommonv1.Region_GCP_EUROPE_CENTRAL2,
	"Region_GCP_EUROPE_NORTH1":           globalcommonv1.Region_GCP_EUROPE_NORTH1,
	"Region_GCP_EUROPE_SOUTHWEST1":       globalcommonv1.Region_GCP_EUROPE_SOUTHWEST1,
	"Region_GCP_EUROPE_WEST1":            globalcommonv1.Region_GCP_EUROPE_WEST1,
	"Region_GCP_EUROPE_WEST10":           globalcommonv1.Region_GCP_EUROPE_WEST10,
	"Region_GCP_EUROPE_WEST12":           globalcommonv1.Region_GCP_EUROPE_WEST12,
	"Region_GCP_EUROPE_WEST2":            globalcommonv1.Region_GCP_EUROPE_WEST2,
	"Region_GCP_EUROPE_WEST3":            globalcommonv1.Region_GCP_EUROPE_WEST3,
	"Region_GCP_EUROPE_WEST4":            globalcommonv1.Region_GCP_EUROPE_WEST4,
	"Region_GCP_EUROPE_WEST6":            globalcommonv1.Region_GCP_EUROPE_WEST6,
	"Region_GCP_EUROPE_WEST8":            globalcommonv1.Region_GCP_EUROPE_WEST8,
	"Region_GCP_EUROPE_WEST9":            globalcommonv1.Region_GCP_EUROPE_WEST9,
	"Region_GCP_ME_CENTRAL1":             globalcommonv1.Region_GCP_ME_CENTRAL1,
	"Region_GCP_ME_CENTRAL2":             globalcommonv1.Region_GCP_ME_CENTRAL2,
	"Region_GCP_ME_WEST1":                globalcommonv1.Region_GCP_ME_WEST1,
	"Region_GCP_NORTHAMERICA_NORTHEAST1": globalcommonv1.Region_GCP_NORTHAMERICA_NORTHEAST1,
	"Region_GCP_NORTHAMERICA_NORTHEAST2": globalcommonv1.Region_GCP_NORTHAMERICA_NORTHEAST2,
	"Region_GCP_SOUTHAMERICA_EAST1":      globalcommonv1.Region_GCP_SOUTHAMERICA_EAST1,
	"Region_GCP_SOUTHAMERICA_WEST1":      globalcommonv1.Region_GCP_SOUTHAMERICA_WEST1,
	"Region_GCP_US_CENTRAL1":             globalcommonv1.Region_GCP_US_CENTRAL1,
	"Region_GCP_US_EAST1":                globalcommonv1.Region_GCP_US_EAST1,
	"Region_GCP_US_EAST4":                globalcommonv1.Region_GCP_US_EAST4,
	"Region_GCP_US_EAST5":                globalcommonv1.Region_GCP_US_EAST5,
	"Region_GCP_US_SOUTH1":               globalcommonv1.Region_GCP_US_SOUTH1,
	"Region_GCP_US_WEST1":                globalcommonv1.Region_GCP_US_WEST1,
	"Region_GCP_US_WEST2":                globalcommonv1.Region_GCP_US_WEST2,
	"Region_GCP_US_WEST3":                globalcommonv1.Region_GCP_US_WEST3,
	"Region_GCP_US_WEST4":                globalcommonv1.Region_GCP_US_WEST4,
	// Azure
	"Region_AZURE_EASTUS":              globalcommonv1.Region_AZURE_EASTUS,
	"Region_AZURE_SOUTHCENTRALUS":      globalcommonv1.Region_AZURE_SOUTHCENTRALUS,
	"Region_AZURE_WESTUS2":             globalcommonv1.Region_AZURE_WESTUS2,
	"Region_AZURE_WESTUS3":             globalcommonv1.Region_AZURE_WESTUS3,
	"Region_AZURE_AUSTRALIAEAST":       globalcommonv1.Region_AZURE_AUSTRALIAEAST,
	"Region_AZURE_SOUTHEASTASIA":       globalcommonv1.Region_AZURE_SOUTHEASTASIA,
	"Region_AZURE_NORTHEUROPE":         globalcommonv1.Region_AZURE_NORTHEUROPE,
	"Region_AZURE_SWEDENCENTRAL":       globalcommonv1.Region_AZURE_SWEDENCENTRAL,
	"Region_AZURE_UKSOUTH":             globalcommonv1.Region_AZURE_UKSOUTH,
	"Region_AZURE_WESTEUROPE":          globalcommonv1.Region_AZURE_WESTEUROPE,
	"Region_AZURE_CENTRALUS":           globalcommonv1.Region_AZURE_CENTRALUS,
	"Region_AZURE_SOUTHAFRICANORTH":    globalcommonv1.Region_AZURE_SOUTHAFRICANORTH,
	"Region_AZURE_CENTRALINDIA":        globalcommonv1.Region_AZURE_CENTRALINDIA,
	"Region_AZURE_EASTASIA":            globalcommonv1.Region_AZURE_EASTASIA,
	"Region_AZURE_JAPANEAST":           globalcommonv1.Region_AZURE_JAPANEAST,
	"Region_AZURE_KOREACENTRAL":        globalcommonv1.Region_AZURE_KOREACENTRAL,
	"Region_AZURE_CANADACENTRAL":       globalcommonv1.Region_AZURE_CANADACENTRAL,
	"Region_AZURE_FRANCECENTRAL":       globalcommonv1.Region_AZURE_FRANCECENTRAL,
	"Region_AZURE_GERMANYWESTCENTRAL":  globalcommonv1.Region_AZURE_GERMANYWESTCENTRAL,
	"Region_AZURE_ITALYNORTH":          globalcommonv1.Region_AZURE_ITALYNORTH,
	"Region_AZURE_NORWAYEAST":          globalcommonv1.Region_AZURE_NORWAYEAST,
	"Region_AZURE_POLANDCENTRAL":       globalcommonv1.Region_AZURE_POLANDCENTRAL,
	"Region_AZURE_SPAINCENTRAL":        globalcommonv1.Region_AZURE_SPAINCENTRAL,
	"Region_AZURE_SWITZERLANDNORTH":    globalcommonv1.Region_AZURE_SWITZERLANDNORTH,
	"Region_AZURE_MEXICOCENTRAL":       globalcommonv1.Region_AZURE_MEXICOCENTRAL,
	"Region_AZURE_UAENORTH":            globalcommonv1.Region_AZURE_UAENORTH,
	"Region_AZURE_BRAZILSOUTH":         globalcommonv1.Region_AZURE_BRAZILSOUTH,
	"Region_AZURE_ISRAELCENTRAL":       globalcommonv1.Region_AZURE_ISRAELCENTRAL,
	"Region_AZURE_QATARCENTRAL":        globalcommonv1.Region_AZURE_QATARCENTRAL,
	"Region_AZURE_CENTRALUSSTAGE":      globalcommonv1.Region_AZURE_CENTRALUSSTAGE,
	"Region_AZURE_EASTUSSTAGE":         globalcommonv1.Region_AZURE_EASTUSSTAGE,
	"Region_AZURE_EASTUS2STAGE":        globalcommonv1.Region_AZURE_EASTUS2STAGE,
	"Region_AZURE_NORTHCENTRALUSSTAGE": globalcommonv1.Region_AZURE_NORTHCENTRALUSSTAGE,
	"Region_AZURE_SOUTHCENTRALUSSTAGE": globalcommonv1.Region_AZURE_SOUTHCENTRALUSSTAGE,
	"Region_AZURE_WESTUSSTAGE":         globalcommonv1.Region_AZURE_WESTUSSTAGE,
	"Region_AZURE_WESTUS2STAGE":        globalcommonv1.Region_AZURE_WESTUS2STAGE,
	"Region_AZURE_ASIA":                globalcommonv1.Region_AZURE_ASIA,
	"Region_AZURE_ASIAPACIFIC":         globalcommonv1.Region_AZURE_ASIAPACIFIC,
	"Region_AZURE_AUSTRALIA":           globalcommonv1.Region_AZURE_AUSTRALIA,
	"Region_AZURE_BRAZIL":              globalcommonv1.Region_AZURE_BRAZIL,
	"Region_AZURE_CANADA":              globalcommonv1.Region_AZURE_CANADA,
	"Region_AZURE_EUROPE":              globalcommonv1.Region_AZURE_EUROPE,
	"Region_AZURE_FRANCE":              globalcommonv1.Region_AZURE_FRANCE,
	"Region_AZURE_GERMANY":             globalcommonv1.Region_AZURE_GERMANY,
	"Region_AZURE_GLOBAL":              globalcommonv1.Region_AZURE_GLOBAL,
	"Region_AZURE_INDIA":               globalcommonv1.Region_AZURE_INDIA,
	"Region_AZURE_ISRAEL":              globalcommonv1.Region_AZURE_ISRAEL,
	"Region_AZURE_ITALY":               globalcommonv1.Region_AZURE_ITALY,
	"Region_AZURE_JAPAN":               globalcommonv1.Region_AZURE_JAPAN,
	"Region_AZURE_KOREA":               globalcommonv1.Region_AZURE_KOREA,
	"Region_AZURE_NEWZEALAND":          globalcommonv1.Region_AZURE_NEWZEALAND,
	"Region_AZURE_NORWAY":              globalcommonv1.Region_AZURE_NORWAY,
	"Region_AZURE_POLAND":              globalcommonv1.Region_AZURE_POLAND,
	"Region_AZURE_QATAR":               globalcommonv1.Region_AZURE_QATAR,
	"Region_AZURE_SINGAPORE":           globalcommonv1.Region_AZURE_SINGAPORE,
	"Region_AZURE_SOUTHAFRICA":         globalcommonv1.Region_AZURE_SOUTHAFRICA,
	"Region_AZURE_SWEDEN":              globalcommonv1.Region_AZURE_SWEDEN,
	"Region_AZURE_SWITZERLAND":         globalcommonv1.Region_AZURE_SWITZERLAND,
	"Region_AZURE_UAE":                 globalcommonv1.Region_AZURE_UAE,
	"Region_AZURE_UK":                  globalcommonv1.Region_AZURE_UK,
	"Region_AZURE_UNITEDSTATES":        globalcommonv1.Region_AZURE_UNITEDSTATES,
	"Region_AZURE_UNITEDSTATESEUAP":    globalcommonv1.Region_AZURE_UNITEDSTATESEUAP,
	"Region_AZURE_EASTASIASTAGE":       globalcommonv1.Region_AZURE_EASTASIASTAGE,
	"Region_AZURE_SOUTHEASTASIASTAGE":  globalcommonv1.Region_AZURE_SOUTHEASTASIASTAGE,
	"Region_AZURE_BRAZILUS":            globalcommonv1.Region_AZURE_BRAZILUS,
	"Region_AZURE_EASTUS2":             globalcommonv1.Region_AZURE_EASTUS2,
	"Region_AZURE_EASTUSSTG":           globalcommonv1.Region_AZURE_EASTUSSTG,
	"Region_AZURE_NORTHCENTRALUS":      globalcommonv1.Region_AZURE_NORTHCENTRALUS,
	"Region_AZURE_WESTUS":              globalcommonv1.Region_AZURE_WESTUS,
	"Region_AZURE_JAPANWEST":           globalcommonv1.Region_AZURE_JAPANWEST,
	"Region_AZURE_JIOINDIAWEST":        globalcommonv1.Region_AZURE_JIOINDIAWEST,
	"Region_AZURE_CENTRALUSEUAP":       globalcommonv1.Region_AZURE_CENTRALUSEUAP,
	"Region_AZURE_EASTUS2EUAP":         globalcommonv1.Region_AZURE_EASTUS2EUAP,
	"Region_AZURE_WESTCENTRALUS":       globalcommonv1.Region_AZURE_WESTCENTRALUS,
	"Region_AZURE_SOUTHAFRICAWEST":     globalcommonv1.Region_AZURE_SOUTHAFRICAWEST,
	"Region_AZURE_AUSTRALIACENTRAL":    globalcommonv1.Region_AZURE_AUSTRALIACENTRAL,
	"Region_AZURE_AUSTRALIACENTRAL2":   globalcommonv1.Region_AZURE_AUSTRALIACENTRAL2,
	"Region_AZURE_AUSTRALIASOUTHEAST":  globalcommonv1.Region_AZURE_AUSTRALIASOUTHEAST,
	"Region_AZURE_JIOINDIACENTRAL":     globalcommonv1.Region_AZURE_JIOINDIACENTRAL,
	"Region_AZURE_KOREASOUTH":          globalcommonv1.Region_AZURE_KOREASOUTH,
	"Region_AZURE_SOUTHINDIA":          globalcommonv1.Region_AZURE_SOUTHINDIA,
	"Region_AZURE_WESTINDIA":           globalcommonv1.Region_AZURE_WESTINDIA,
	"Region_AZURE_CANADAEAST":          globalcommonv1.Region_AZURE_CANADAEAST,
	"Region_AZURE_FRANCESOUTH":         globalcommonv1.Region_AZURE_FRANCESOUTH,
	"Region_AZURE_GERMANYNORTH":        globalcommonv1.Region_AZURE_GERMANYNORTH,
	"Region_AZURE_NORWAYWEST":          globalcommonv1.Region_AZURE_NORWAYWEST,
	"Region_AZURE_SWITZERLANDWEST":     globalcommonv1.Region_AZURE_SWITZERLANDWEST,
	"Region_AZURE_UKWEST":              globalcommonv1.Region_AZURE_UKWEST,
	"Region_AZURE_UAECENTRAL":          globalcommonv1.Region_AZURE_UAECENTRAL,
	"Region_AZURE_BRAZILSOUTHEAST":     globalcommonv1.Region_AZURE_BRAZILSOUTHEAST,
	// Alicloud
	"Region_ALICLOUD_AP_SOUTHEAST_1": globalcommonv1.Region_ALICLOUD_AP_SOUTHEAST_1,
	"Region_ALICLOUD_AP_NORTHEAST_1": globalcommonv1.Region_ALICLOUD_AP_NORTHEAST_1,
	"Region_ALICLOUD_AP_NORTHEAST_2": globalcommonv1.Region_ALICLOUD_AP_NORTHEAST_2,
	"Region_ALICLOUD_AP_SOUTHEAST_3": globalcommonv1.Region_ALICLOUD_AP_SOUTHEAST_3,
	"Region_ALICLOUD_AP_SOUTHEAST_5": globalcommonv1.Region_ALICLOUD_AP_SOUTHEAST_5,
	"Region_ALICLOUD_AP_SOUTHEAST_6": globalcommonv1.Region_ALICLOUD_AP_SOUTHEAST_6,
	"Region_ALICLOUD_AP_SOUTHEAST_7": globalcommonv1.Region_ALICLOUD_AP_SOUTHEAST_7,
	"Region_ALICLOUD_NA_SOUTH_1":     globalcommonv1.Region_ALICLOUD_NA_SOUTH_1,
	"Region_ALICLOUD_US_WEST_1":      globalcommonv1.Region_ALICLOUD_US_WEST_1,
	"Region_ALICLOUD_US_EAST_1":      globalcommonv1.Region_ALICLOUD_US_EAST_1,
	"Region_ALICLOUD_EU_CENTRAL_1":   globalcommonv1.Region_ALICLOUD_EU_CENTRAL_1,
	"Region_ALICLOUD_EU_WEST_1":      globalcommonv1.Region_ALICLOUD_EU_WEST_1,
	"Region_ALICLOUD_ME_EAST_1":      globalcommonv1.Region_ALICLOUD_ME_EAST_1,
	"Region_ALICLOUD_ME_CENTRAL_1":   globalcommonv1.Region_ALICLOUD_ME_CENTRAL_1,
}
