1.0.0
This commit is contained in:
129
internal/service/cloudapi/rg/models/model_resource_rg.go
Normal file
129
internal/service/cloudapi/rg/models/model_resource_rg.go
Normal file
@@ -0,0 +1,129 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
|
||||
"github.com/hashicorp/terraform-plugin-framework/attr"
|
||||
"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:"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"`
|
||||
Quota types.Object `tfsdk:"quota"`
|
||||
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"`
|
||||
Reason types.String `tfsdk:"reason"`
|
||||
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"`
|
||||
CPUAllocationParameter types.String `tfsdk:"cpu_allocation_parameter"`
|
||||
CPUAllocationRatio types.Float64 `tfsdk:"cpu_allocation_ratio"`
|
||||
DefNetID types.Int64 `tfsdk:"def_net_id"`
|
||||
DeletedBy types.String `tfsdk:"deleted_by"`
|
||||
DeletedTime types.Int64 `tfsdk:"deleted_time"`
|
||||
Dirty types.Bool `tfsdk:"dirty"`
|
||||
GUID types.Int64 `tfsdk:"guid"`
|
||||
Id types.String `tfsdk:"id"`
|
||||
LockStatus types.String `tfsdk:"lock_status"`
|
||||
Milestones types.Int64 `tfsdk:"milestones"`
|
||||
ResTypes types.List `tfsdk:"res_types"`
|
||||
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"`
|
||||
VINS types.List `tfsdk:"vins"`
|
||||
VMS types.List `tfsdk:"vms"`
|
||||
}
|
||||
|
||||
type ItemACLModel 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"`
|
||||
}
|
||||
|
||||
type QuotaModel struct {
|
||||
CPU types.Int64 `tfsdk:"cpu"`
|
||||
Ram types.Int64 `tfsdk:"ram"`
|
||||
Disk types.Int64 `tfsdk:"disk"`
|
||||
ExtTraffic types.Int64 `tfsdk:"ext_traffic"`
|
||||
ExtIps types.Int64 `tfsdk:"ext_ips"`
|
||||
GpuUnits types.Int64 `tfsdk:"gpu_units"`
|
||||
CuD types.Int64 `tfsdk:"cu_d"`
|
||||
}
|
||||
|
||||
type AccessModel struct {
|
||||
User types.String `tfsdk:"user"`
|
||||
Right types.String `tfsdk:"right"`
|
||||
Reason types.String `tfsdk:"reason"`
|
||||
}
|
||||
|
||||
type DefNetModel struct {
|
||||
NetType types.String `tfsdk:"net_type"`
|
||||
NetId types.Int64 `tfsdk:"net_id"`
|
||||
Reason types.String `tfsdk:"reason"`
|
||||
}
|
||||
|
||||
var ItemAccess = map[string]attr.Type{
|
||||
"user": types.StringType,
|
||||
"right": types.StringType,
|
||||
"reason": types.StringType,
|
||||
}
|
||||
|
||||
var ItemDefNet = map[string]attr.Type{
|
||||
"net_type": types.StringType,
|
||||
"net_id": types.Int64Type,
|
||||
"reason": types.StringType,
|
||||
}
|
||||
|
||||
var ItemACL = map[string]attr.Type{
|
||||
"explicit": types.BoolType,
|
||||
"guid": types.StringType,
|
||||
"right": types.StringType,
|
||||
"status": types.StringType,
|
||||
"type": types.StringType,
|
||||
"user_group_id": types.StringType,
|
||||
}
|
||||
|
||||
var ItemQuota = map[string]attr.Type{
|
||||
"cpu": types.Int64Type,
|
||||
"ram": types.Int64Type,
|
||||
"disk": types.Int64Type,
|
||||
"ext_traffic": types.Int64Type,
|
||||
"ext_ips": types.Int64Type,
|
||||
"gpu_units": types.Int64Type,
|
||||
"cu_d": types.Int64Type,
|
||||
}
|
||||
|
||||
// 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
|
||||
}
|
||||
Reference in New Issue
Block a user