package models

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

type ListUsersModel struct {
	// request fields
	ComputeID types.Int64    `tfsdk:"compute_id"`
	Timeouts  timeouts.Value `tfsdk:"timeouts"`
	// response fields
	Id         types.String               `tfsdk:"id"`
	Items      *RecordACLInListUsersModel `tfsdk:"items"`
	EntryCount types.Int64                `tfsdk:"entry_count"`
}

type RecordACLInListUsersModel struct {
	AccountACL []ItemACLInListUsersModel `tfsdk:"account_acl"`
	ComputeACL []ItemACLInListUsersModel `tfsdk:"compute_acl"`
	RGACL      []ItemACLInListUsersModel `tfsdk:"rg_acl"`
}

type ItemACLInListUsersModel struct {
	Explicit    types.Bool   `tfsdk:"explicit"`
	GUID        types.String `tfsdk:"guid"`
	Right       types.String `tfsdk:"right"`
	Status      types.String `tfsdk:"status"`
	Type        types.String `tfsdk:"type"`
	UserGroupID types.String `tfsdk:"user_group_id"`
}
