package models

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

type ResourceFLIPGroupModel struct {
	// request fields - required
	AccountID  types.Int64  `tfsdk:"account_id"`
	Name       types.String `tfsdk:"name"`
	NetType    types.String `tfsdk:"net_type"`
	NetID      types.Int64  `tfsdk:"net_id"`
	ClientType types.String `tfsdk:"client_type"`

	// request fields - optional
	IP          types.String `tfsdk:"ip"`
	Description types.String `tfsdk:"desc"`

	// response fields
	FlipgroupID types.Int64    `tfsdk:"flipgroup_id"`
	Timeouts    timeouts.Value `tfsdk:"timeouts"`
	AccountName types.String   `tfsdk:"account_name"`
	ClientIDs   types.List     `tfsdk:"client_ids"`
	ConnID      types.Int64    `tfsdk:"conn_id"`
	ConnType    types.String   `tfsdk:"conn_type"`
	CreatedBy   types.String   `tfsdk:"created_by"`
	CreatedTime types.Int64    `tfsdk:"created_time"`
	DefaultGW   types.String   `tfsdk:"default_gw"`
	DeletedBy   types.String   `tfsdk:"deleted_by"`
	DeletedTime types.Int64    `tfsdk:"deleted_time"`
	GID         types.Int64    `tfsdk:"gid"`
	GUID        types.Int64    `tfsdk:"guid"`
	ID          types.String   `tfsdk:"id"`
	Milestones  types.Int64    `tfsdk:"milestones"`
	Network     types.String   `tfsdk:"network"`
	RGID        types.Int64    `tfsdk:"rg_id"`
	RGName      types.String   `tfsdk:"rg_name"`
	Status      types.String   `tfsdk:"status"`
	UpdatedBy   types.String   `tfsdk:"updated_by"`
	UpdatedTime types.Int64    `tfsdk:"updated_time"`
}
