package models import ( "github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts" "github.com/hashicorp/terraform-plugin-framework/types" ) type ResourceRGModel struct { // request fields - required AccountID types.Int64 `tfsdk:"account_id"` GID types.Int64 `tfsdk:"gid"` Name types.String `tfsdk:"rg_name"` // request fields - optional DefNetType types.String `tfsdk:"def_net_type"` IPCIDR types.String `tfsdk:"ipcidr"` ExtNetID types.Int64 `tfsdk:"ext_net_id"` ExtIP types.String `tfsdk:"ext_ip"` Owner types.String `tfsdk:"owner"` ResourceLimits types.Object `tfsdk:"resource_limits"` CPUAllocationParameter types.String `tfsdk:"cpu_allocation_parameter"` CPUAllocationRatio types.Float64 `tfsdk:"cpu_allocation_ratio"` Access types.List `tfsdk:"access"` DefNet types.Object `tfsdk:"def_net"` Description types.String `tfsdk:"description"` Force types.Bool `tfsdk:"force"` Permanently types.Bool `tfsdk:"permanently"` RegisterComputes types.Bool `tfsdk:"register_computes"` Restore types.Bool `tfsdk:"restore"` Enable types.Bool `tfsdk:"enable"` Timeouts timeouts.Value `tfsdk:"timeouts"` // response fields RGID types.Int64 `tfsdk:"rg_id"` LastUpdated types.String `tfsdk:"last_updated"` AccountName types.String `tfsdk:"account_name"` ACL types.List `tfsdk:"acl"` ComputeFeatures types.List `tfsdk:"compute_features"` CreatedBy types.String `tfsdk:"created_by"` CreatedTime types.Int64 `tfsdk:"created_time"` DefNetID types.Int64 `tfsdk:"def_net_id"` DeletedBy types.String `tfsdk:"deleted_by"` DeletedTime types.Int64 `tfsdk:"deleted_time"` GUID types.Int64 `tfsdk:"guid"` Id types.String `tfsdk:"id"` LockStatus types.String `tfsdk:"lock_status"` Milestones types.Int64 `tfsdk:"milestones"` Secret types.String `tfsdk:"secret"` Status types.String `tfsdk:"status"` UniqPools types.List `tfsdk:"uniq_pools"` UpdatedBy types.String `tfsdk:"updated_by"` UpdatedTime types.Int64 `tfsdk:"updated_time"` ResourceTypes types.List `tfsdk:"resource_types"` VINS types.List `tfsdk:"vins"` VMS types.List `tfsdk:"vms"` } type AccessModel struct { User types.String `tfsdk:"user"` Right types.String `tfsdk:"right"` } type DefNetModel struct { NetType types.String `tfsdk:"net_type"` NetId types.Int64 `tfsdk:"net_id"` } // Contains returns true if accessList contains a as an element. Otherwise it returns false. func (a *AccessModel) Contains(accessList []AccessModel) bool { for _, accessElem := range accessList { if a.User.Equal(accessElem.User) && a.Right.Equal(accessElem.Right) { return true } } return false }