package provider

import (
	"github.com/hashicorp/terraform-plugin-framework/resource"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/account"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/bservice"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/disks"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/flipgroup"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/image"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/k8s"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/kvmvm"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/lb"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/rg"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins"
	cbAccount "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/account"
	cbDisks "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/disks"
	cbK8CI "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/k8ci"
	cbLb "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/lb"
	cbRG "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/rg"
	cbVFpool "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/vfpool"
	cbVins "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/vins"
)

func newResourcesMap() []func() resource.Resource {
	return []func() resource.Resource{
		account.NewResourceAccount,
		image.NewResourceImage,
		image.NewResourceImageVirtual,
		disks.NewResourceDisk,
		disks.NewResourceDiskSnapshot,
		disks.NewResourceDiskReplications,
		flipgroup.NewResourceFlipgroup,
		k8s.NewResourceK8SCP,
		k8s.NewResourceK8SWG,
		kvmvm.NewResourceCompute,
		lb.NewResourceLB,
		lb.NewResourceLBBackend,
		lb.NewResourceLBBackendServer,
		lb.NewResourceLBFrontend,
		lb.NewResourceLBFrontendBind,
		rg.NewResourceRG,
		vins.NewResourceVINS,
		vins.NewResourceVINSStaticRoute,
		bservice.NewResourceBService,
		bservice.NewResourceBServiceGroup,

		cbAccount.NewResourceAccount,

		cbDisks.NewResourceDiskReplications,
		cbDisks.NewResourceDiskSnapshot,
		cbDisks.NewResourceDisk,

		cbK8CI.NewResourceK8Ci,

		cbLb.NewResourceLB,
		cbLb.NewResourceLBBackend,
		cbLb.NewResourceLBBackendServer,
		cbLb.NewResourceLBFrontend,
		cbLb.NewResourceLBFrontendBind,
		cbRG.NewResourceRG,
		cbVFpool.NewResourceVFPool,
		cbVins.NewResourceVINS,
		cbVins.NewResourceVINSStaticRoute,
	}
}
