package provider

import (
	"github.com/hashicorp/terraform-plugin-framework/datasource"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/account"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/audit"
	"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/dpdknet"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet"
	"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/stack"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vfpool"
	"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins"
	cbAccount "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/account"
	cbAudit "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/audit"
	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"
	cbNode "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/node"
	cbRG "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/rg"
	cbStack "repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/stack"
	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 newDataSourcesMap() []func() datasource.DataSource {
	return []func() datasource.DataSource{
		account.NewDataSourceAccount,
		account.NewDataSourceAccountAuditsList,
		account.NewDataSourceAccountComputesList,
		account.NewDataSourceAccountConsumedUnits,
		account.NewDataSourceAccountConsumedUnitsByType,
		account.NewDataSourceAccountDisksList,
		account.NewDataSourceAccountFlipgroupsList,
		account.NewDataSourceAccountList,
		account.NewDataSourceAccountListDeleted,
		account.NewDataSourceAccountRGList,
		account.NewDataSourceAccountTemplatesList,
		account.NewDataSourceAccountVinsList,
		account.NewDataSourceAccountGetResourceConsumption,
		account.NewDataSourceAccountReservedUnits,
		account.NewDataSourceAccountGetResourceConsumptionList,

		audit.NewDataSourceAudit,

		bservice.NewDataSourceBService,
		bservice.NewDataSourceBServiceList,
		bservice.NewDataSourceBServiceGroup,
		bservice.NewDataSourceBServiceDeletedList,
		bservice.NewDataSourceBServiceSnapshotList,

		disks.NewDataSourceDisk,
		disks.NewDataSourceDiskList,
		disks.NewDataSourceDiskListDeleted,
		disks.NewDataSourceDiskListTypes,
		disks.NewDataSourceDiskListTypesDetailed,
		disks.NewDataSourceDiskListUnattached,
		disks.NewDataSourceDiskSnapshot,
		disks.NewDataSourceDiskSnapshotList,
		disks.NewDataSourceDiskReplication,

		dpdknet.NewDataSourceDPDK,
		dpdknet.NewDataSourceDPDKList,

		extnet.NewDataSourceExtNet,
		extnet.NewDataSourceExtNetComputesList,
		extnet.NewDataSourceExtNetDefault,
		extnet.NewDataSourceExtNetList,
		extnet.NewDataSourceExtNetReservedIP,

		flipgroup.NewDataSourceFlipgroup,
		flipgroup.NewDataSourceFlipgroupList,

		image.NewDataSourceImage,
		image.NewDataSourceImageList,

		k8s.NewDataSourceK8S,
		k8s.NewDataSourceK8SWgCloudInit,
		k8s.NewDataSourceK8SList,
		k8s.NewDataSourceK8SListDeleted,
		k8s.NewDataSourceK8SWg,
		k8s.NewDataSourceK8SComputes,
		k8s.NewDataSourceK8ciList,
		k8s.NewDataSourceK8SWgList,

		kvmvm.NewDataSourceComputeAudits,
		kvmvm.NewDataSourceComputeGetAudits,
		kvmvm.NewDataSourceComputeGetConsoleUrl,
		kvmvm.NewDataSourceComputeGetLog,
		kvmvm.NewDataSourceComputePciDeviceList,
		kvmvm.NewDataSourceComputePFWList,
		kvmvm.NewDataSourceComputeSnapshotUsage,
		kvmvm.NewDataSourceComputeUserList,
		kvmvm.NewDataSourceComputeVGPUList,
		kvmvm.NewDataSourceComputeList,
		kvmvm.NewDataSourceComputeListDeleted,
		kvmvm.NewDataSourceCompute,

		lb.NewDataSourceLB,
		lb.NewDataSourceLBList,
		lb.NewDataSourceLBListDeleted,

		rg.NewDataSourceRG,
		rg.NewDataSourceRGAffinityGroupComputes,
		rg.NewDataSourceRGAffinityGroupsGet,
		rg.NewDataSourceRGAffinityGroupsList,
		rg.NewDataSourceRGAudits,
		rg.NewDataSourceRGGetResourceConsumption,
		rg.NewDataSourceRGList,
		rg.NewDataSourceRGListComputes,
		rg.NewDataSourceRGListDeleted,
		rg.NewDataSourceRGListLB,
		rg.NewDataSourceRGListPFW,
		rg.NewDataSourceRGListVins,
		rg.NewDataSourceRGResourceConsumptionList,
		rg.NewDataSourceRGUsage,

		stack.NewDataSourceStack,
		stack.NewDataSourceStackList,

		vfpool.NewDataSourceVFPool,
		vfpool.NewDataSourceVFPoolList,

		cbVFpool.NewDataSourceVFPool,
		cbVFpool.NewDataSourceVFPoolList,

		vins.NewDataSourceVINS,
		vins.NewDataSourceVINSAudits,
		vins.NewDataSourceVINSExtNetList,
		vins.NewDataSourceVINSIPList,
		vins.NewDataSourceVINSList,
		vins.NewDataSourceVINSListDeleted,
		vins.NewDataSourceVINSNATRuleList,
		vins.NewDataSourceVINSStaticRoute,
		vins.NewDataSourceVINSStaticRouteList,

		cbAccount.NewDataSourceAccount,
		cbAccount.NewDataSourceAccountList,
		cbAccount.NewDataSourceAccountVinsList,
		cbAccount.NewDataSourceAccountAuditsList,
		cbAccount.NewDataSourceAccountAvailableTemplatesListDataSource,
		cbAccount.NewDataSourceAccountComputesList,
		cbAccount.NewDataSourceAccountDisksList,
		cbAccount.NewDataSourceAccountFlipgroupsList,
		cbAccount.NewDataSourceAccountGetResourceConsumption,
		cbAccount.NewDataSourceAccountListDeleted,
		cbAccount.NewDataSourceAccountGetResourceConsumptionList,
		cbAccount.NewDataSourceAccountRGList,

		cbAudit.NewDataSourceAudit,
		cbAudit.NewDataSourceAuditLinkedJobs,
		cbAudit.NewDataSourceAuditList,

		cbDisks.NewDataSourceDiskListDeleted,
		cbDisks.NewDataSourceDiskListTypesDetailed,
		cbDisks.NewDataSourceDiskListTypes,
		cbDisks.NewDataSourceDiskListUnattached,
		cbDisks.NewdataSourceDiskList,
		cbDisks.NewDataSourceDiskReplication,
		cbDisks.NewDataSourceDiskSnapshotList,
		cbDisks.NewDataSourceDiskSnapshot,
		cbDisks.NewDataSourceDisk,

		cbNode.NewDataSourceNode,
		cbNode.NewDataSourceNodeList,

		cbK8ci.NewDataSourceK8CI,
		cbK8ci.NewDataSourceK8CIList,
		cbK8ci.NewDataSourceK8CIListDeleted,

		cbLb.NewDataSourceLB,
		cbLb.NewDataSourceLBList,
		cbLb.NewDataSourceLBListDeleted,

		cbStack.NewDataSourceStack,
		cbStack.NewDataSourceStackList,

		cbVins.NewDataSourceVINS,
		cbVins.NewDataSourceVINSAudits,
		cbVins.NewDataSourceVINSExtNetList,
		cbVins.NewDataSourceVINSIPList,
		cbVins.NewDataSourceVINSList,
		cbVins.NewDataSourceVINSListDeleted,
		cbVins.NewDataSourceVINSNATRuleList,
		cbVins.NewDataSourceVINSStaticRoute,
		cbVins.NewDataSourceVINSStaticRouteList,

		cbRG.NewDataSourceRG,
		cbRG.NewDataSourceRGList,
		cbRG.NewDataSourceRGListDeleted,
		cbRG.NewDataSourceRGAffinityGroupComputes,
		cbRG.NewDataSourceRGAffinityGroupsGet,
		cbRG.NewDataSourceRGAffinityGroupsList,
		cbRG.NewDataSourceRGAudits,
		cbRG.NewDataSourceRGGetResourceConsumption,
		cbRG.NewDataSourceRGResourceConsumptionList,
		cbRG.NewDataSourceRGUsage,
		cbRG.NewDataSourceRGListComputes,
		cbRG.NewDataSourceRGListLB,
		cbRG.NewDataSourceRGListPFW,
		cbRG.NewDataSourceRGListVins,
	}
}
