package scheme

import (
	"k8s.io/apimachinery/pkg/runtime"

	ec2v1alpha1 "github.com/crossplane-contrib/provider-aws/apis/ec2/v1alpha1"
	ec2v1beta1 "github.com/crossplane-contrib/provider-aws/apis/ec2/v1beta1"
	iamv1beta1 "github.com/crossplane-contrib/provider-aws/apis/iam/v1beta1"
	lambdav1beta1 "github.com/crossplane-contrib/provider-aws/apis/lambda/v1beta1"
	awsv1beta1 "github.com/crossplane-contrib/provider-aws/apis/v1beta1"
	operatorv1alpha1 "github.com/pingcap/tidb-operator/pkg/apis/pingcap/v1alpha1"
	clientgoscheme "k8s.io/client-go/kubernetes/scheme"

	"github.com/tidbcloud/eks-provider/api/v1alpha1"
	cloudv1 "github.com/tidbcloud/infra-api/api/v1"
)

var (
	Scheme        = runtime.NewScheme()
	SchemeBuilder = runtime.NewSchemeBuilder(
		clientgoscheme.AddToScheme,
		cloudv1.AddToScheme,
		v1alpha1.AddToScheme,
		operatorv1alpha1.AddToScheme,

		awsv1beta1.SchemeBuilder.AddToScheme,
		lambdav1beta1.SchemeBuilder.AddToScheme,
		ec2v1alpha1.SchemeBuilder.AddToScheme,
		ec2v1beta1.SchemeBuilder.AddToScheme,
		iamv1beta1.SchemeBuilder.AddToScheme,
	)

	AddToScheme = SchemeBuilder.AddToScheme
)

func init() {
	_ = SchemeBuilder.AddToScheme(Scheme)
}
