package models

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

type DataSourceFLIPGroupModelList struct {

	// optional fields
	FlipgroupID types.Int64    `tfsdk:"by_id"`
	Name        types.String   `tfsdk:"name"`
	VinsID      types.Int64    `tfsdk:"vins_id"`
	VinsName    types.String   `tfsdk:"vins_name"`
	ExtnetID    types.Int64    `tfsdk:"extnet_id"`
	ByIP        types.String   `tfsdk:"by_ip"`
	AccountID   types.Int64    `tfsdk:"account_id"`
	RgID        types.Int64    `tfsdk:"rg_id"`
	SortBy      types.String   `tfsdk:"sort_by"`
	Page        types.Int64    `tfsdk:"page"`
	Size        types.Int64    `tfsdk:"size"`
	Timeouts    timeouts.Value `tfsdk:"timeouts"`
	ConnID      types.Int64    `tfsdk:"conn_id"`
	CliendIDs   types.List     `tfsdk:"client_ids"`
	Status      types.String   `tfsdk:"status"`

	// response fields
	ID         types.String         `tfsdk:"id"`
	Items      []ItemFLIPGroupModel `tfsdk:"items"`
	EntryCount types.Int64          `tfsdk:"entry_count"`
}

type ItemFLIPGroupModel struct {
	CKey        types.String `tfsdk:"ckey"`
	Meta        types.List   `tfsdk:"meta"`
	AccountID   types.Int64  `tfsdk:"account_id"`
	ClientIDs   types.List   `tfsdk:"client_ids"`
	ClientType  types.String `tfsdk:"client_type"`
	ConnID      types.Int64  `tfsdk:"conn_id"`
	ConnType    types.String `tfsdk:"conn_type"`
	DefaultGW   types.String `tfsdk:"default_gw"`
	Description types.String `tfsdk:"desc"`
	GID         types.Int64  `tfsdk:"gid"`
	GUID        types.Int64  `tfsdk:"guid"`
	ID          types.Int64  `tfsdk:"flipgroup_id"`
	IP          types.String `tfsdk:"ip"`
	Milestones  types.Int64  `tfsdk:"milestones"`
	Name        types.String `tfsdk:"name"`
	NetID       types.Int64  `tfsdk:"net_id"`
	NetType     types.String `tfsdk:"net_type"`
	NetMask     types.Int64  `tfsdk:"net_mask"`
	Status      types.String `tfsdk:"status"`
}
