package models

import (
	"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
	"github.com/hashicorp/terraform-plugin-framework/types"
)

type ResourceK8CIModel struct {
	// required fields
	Name           types.String   `tfsdk:"name"`
	Version        types.String   `tfsdk:"version"`
	MasterDriver   types.String   `tfsdk:"master_driver"`
	MasterImageId  types.Int64    `tfsdk:"master_image_id"`
	MaxMasterCount types.Int64    `tfsdk:"max_master_count"`
	MaxWorkerCount types.Int64    `tfsdk:"max_worker_count"`
	NetworkPlugins types.List     `tfsdk:"network_plugins"`
	WorkerDriver   types.String   `tfsdk:"worker_driver"`
	WorkerImageId  types.Int64    `tfsdk:"worker_image_id"`
	Timeouts       timeouts.Value `tfsdk:"timeouts"`

	// optional fields
	Description types.String `tfsdk:"desc"`
	Enabled     types.Bool   `tfsdk:"enabled"`
	Permanently types.Bool   `tfsdk:"permanently"`
	Restore     types.Bool   `tfsdk:"restore"`
	SharedWith  types.List   `tfsdk:"shared_with"`

	// response fields

	GID        types.Int64  `tfsdk:"gid"`
	GUID       types.Int64  `tfsdk:"guid"`
	K8ciID     types.Int64  `tfsdk:"k8ci_id"`
	Id         types.String `tfsdk:"id"`
	LBImageID  types.Int64  `tfsdk:"lb_image_id"`
	Milestones types.Int64  `tfsdk:"milestones"`
	Status     types.String `tfsdk:"status"`
}
