This commit is contained in:
asteam
2024-08-23 16:55:50 +03:00
parent 6f40af6a5f
commit 003e4d656e
524 changed files with 43376 additions and 432 deletions

View File

@@ -0,0 +1,147 @@
package models
import (
"github.com/hashicorp/terraform-plugin-framework-timeouts/datasource/timeouts"
"github.com/hashicorp/terraform-plugin-framework/attr"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type DataSourceLB struct {
// required fields
Timeouts timeouts.Value `tfsdk:"timeouts"`
LBID types.Int64 `tfsdk:"lb_id"`
// response fields
HAMode types.Bool `tfsdk:"ha_mode"`
ACL types.String `tfsdk:"acl"`
BackendHAIP types.String `tfsdk:"backend_haip"`
Backends types.List `tfsdk:"backends"`
CKey types.String `tfsdk:"ckey"`
Description types.String `tfsdk:"desc"`
DPAPIUser types.String `tfsdk:"dp_api_user"`
DPAPIPassword types.String `tfsdk:"dp_api_password"`
ExtNetID types.Int64 `tfsdk:"extnet_id"`
FrontendHAIP types.String `tfsdk:"frontend_haip"`
Frontends types.List `tfsdk:"frontends"`
GID types.Int64 `tfsdk:"gid"`
GUID types.Int64 `tfsdk:"guid"`
ID types.Int64 `tfsdk:"id"`
ImageID types.Int64 `tfsdk:"image_id"`
ManagerId types.Int64 `tfsdk:"manager_id"`
ManagerType types.String `tfsdk:"manager_type"`
Meta types.List `tfsdk:"meta"`
Milestones types.Int64 `tfsdk:"milestones"`
Name types.String `tfsdk:"name"`
PartK8s types.Bool `tfsdk:"part_k8s"`
PrimaryNode types.Object `tfsdk:"primary_node"`
RGID types.Int64 `tfsdk:"rg_id"`
SecondaryNode types.Object `tfsdk:"secondary_node"`
Status types.String `tfsdk:"status"`
TechStatus types.String `tfsdk:"tech_status"`
UserManaged types.Bool `tfsdk:"user_managed"`
VINSID types.Int64 `tfsdk:"vins_id"`
}
type ItemBackendModel struct {
Algorithm types.String `tfsdk:"algorithm"`
GUID types.String `tfsdk:"guid"`
Name types.String `tfsdk:"name"`
ServerDefaultSettings types.Object `tfsdk:"server_default_settings"`
Servers types.List `tfsdk:"servers"`
}
type ItemFrontendModel struct {
Backend types.String `tfsdk:"backend"`
Bindings types.List `tfsdk:"bindings"`
GUID types.String `tfsdk:"guid"`
Name types.String `tfsdk:"name"`
}
type RecordNodeModel struct {
BackendIP types.String `tfsdk:"backend_ip"`
ComputeID types.Int64 `tfsdk:"compute_id"`
FrontendIP types.String `tfsdk:"frontend_ip"`
GUID types.String `tfsdk:"guid"`
MGMTIP types.String `tfsdk:"mgmt_ip"`
NetworkID types.Int64 `tfsdk:"network_id"`
}
type RecordServerSettingsModel struct {
Inter types.Int64 `tfsdk:"inter"`
GUID types.String `tfsdk:"guid"`
DownInter types.Int64 `tfsdk:"downinter"`
Rise types.Int64 `tfsdk:"rise"`
Fall types.Int64 `tfsdk:"fall"`
SlowStart types.Int64 `tfsdk:"slowstart"`
MaxConn types.Int64 `tfsdk:"maxconn"`
MaxQueue types.Int64 `tfsdk:"maxqueue"`
Weight types.Int64 `tfsdk:"weight"`
}
type RecordServerModel struct {
Address types.String `tfsdk:"address"`
Check types.String `tfsdk:"check"`
GUID types.String `tfsdk:"guid"`
Name types.String `tfsdk:"name"`
Port types.Int64 `tfsdk:"port"`
ServerSettings types.Object `tfsdk:"server_settings"`
}
type ItemBindingModel struct {
Address types.String `tfsdk:"address"`
GUID types.String `tfsdk:"guid"`
Name types.String `tfsdk:"name"`
Port types.Int64 `tfsdk:"port"`
}
var ItemNode = map[string]attr.Type{
"backend_ip": types.StringType,
"compute_id": types.Int64Type,
"frontend_ip": types.StringType,
"guid": types.StringType,
"mgmt_ip": types.StringType,
"network_id": types.Int64Type,
}
var ItemBackend = map[string]attr.Type{
"algorithm": types.StringType,
"guid": types.StringType,
"name": types.StringType,
"server_default_settings": types.ObjectType{AttrTypes: ItemServerSettings},
"servers": types.ListType{ElemType: types.ObjectType{AttrTypes: ItemServers}},
}
var ItemFrontend = map[string]attr.Type{
"backend": types.StringType,
"bindings": types.ListType{ElemType: types.ObjectType{AttrTypes: ItemBindings}},
"guid": types.StringType,
"name": types.StringType,
}
var ItemServers = map[string]attr.Type{
"address": types.StringType,
"check": types.StringType,
"guid": types.StringType,
"name": types.StringType,
"port": types.Int64Type,
"server_settings": types.ObjectType{AttrTypes: ItemServerSettings},
}
var ItemServerSettings = map[string]attr.Type{
"inter": types.Int64Type,
"guid": types.StringType,
"downinter": types.Int64Type,
"rise": types.Int64Type,
"fall": types.Int64Type,
"slowstart": types.Int64Type,
"maxconn": types.Int64Type,
"maxqueue": types.Int64Type,
"weight": types.Int64Type,
}
var ItemBindings = map[string]attr.Type{
"address": types.StringType,
"name": types.StringType,
"port": types.Int64Type,
"guid": types.StringType,
}

View File

@@ -0,0 +1,64 @@
package models
import (
"github.com/hashicorp/terraform-plugin-framework-timeouts/datasource/timeouts"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type DataSourceLBList struct {
// optional fields
ByID types.Int64 `tfsdk:"by_id"`
Name types.String `tfsdk:"name"`
AccountID types.Int64 `tfsdk:"account_id"`
RgID types.Int64 `tfsdk:"rg_id"`
TechStatus types.String `tfsdk:"tech_status"`
Status types.String `tfsdk:"status"`
FrontIP types.String `tfsdk:"front_ip"`
BackIP types.String `tfsdk:"back_ip"`
IncludeDeleted types.Bool `tfsdk:"include_deleted"`
SortBy types.String `tfsdk:"sort_by"`
Page types.Int64 `tfsdk:"page"`
Size types.Int64 `tfsdk:"size"`
Timeouts timeouts.Value `tfsdk:"timeouts"`
// response fields
Id types.String `tfsdk:"id"`
Items []ItemsLBListModel `tfsdk:"items"`
EntryCount types.Int64 `tfsdk:"entry_count"`
}
type ItemsLBListModel struct {
HAMode types.Bool `tfsdk:"ha_mode"`
ACL types.String `tfsdk:"acl"`
BackendHAIP types.String `tfsdk:"backend_haip"`
Backends types.List `tfsdk:"backends"`
CreatedBy types.String `tfsdk:"created_by"`
CreatedTime types.Int64 `tfsdk:"created_time"`
DeletedBy types.String `tfsdk:"deleted_by"`
DeletedTime types.Int64 `tfsdk:"deleted_time"`
Description types.String `tfsdk:"desc"`
DPAPIUser types.String `tfsdk:"dp_api_user"`
DPAPIPassword types.String `tfsdk:"dp_api_password"`
ExtNetID types.Int64 `tfsdk:"extnet_id"`
FrontendHAIP types.String `tfsdk:"frontend_haip"`
Frontends types.List `tfsdk:"frontends"`
GID types.Int64 `tfsdk:"gid"`
GUID types.Int64 `tfsdk:"guid"`
LBID types.Int64 `tfsdk:"lb_id"`
ManagerId types.Int64 `tfsdk:"manager_id"`
ManagerType types.String `tfsdk:"manager_type"`
Milestones types.Int64 `tfsdk:"milestones"`
Name types.String `tfsdk:"name"`
PartK8s types.Bool `tfsdk:"part_k8s"`
PrimaryNode types.Object `tfsdk:"primary_node"`
RGName types.String `tfsdk:"rg_name"`
RGID types.Int64 `tfsdk:"rg_id"`
SecondaryNode types.Object `tfsdk:"secondary_node"`
Status types.String `tfsdk:"status"`
TechStatus types.String `tfsdk:"tech_status"`
UpdatedBy types.String `tfsdk:"updated_by"`
UpdatedTime types.Int64 `tfsdk:"updated_time"`
UserManaged types.Bool `tfsdk:"user_managed"`
VINSID types.Int64 `tfsdk:"vins_id"`
}

View File

@@ -0,0 +1,62 @@
package models
import (
"github.com/hashicorp/terraform-plugin-framework-timeouts/datasource/timeouts"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type DataSourceLBListDeleted struct {
// optional fields
ByID types.Int64 `tfsdk:"by_id"`
Name types.String `tfsdk:"name"`
AccountID types.Int64 `tfsdk:"account_id"`
RgID types.Int64 `tfsdk:"rg_id"`
TechStatus types.String `tfsdk:"tech_status"`
FrontIP types.String `tfsdk:"front_ip"`
BackIP types.String `tfsdk:"back_ip"`
SortBy types.String `tfsdk:"sort_by"`
Page types.Int64 `tfsdk:"page"`
Size types.Int64 `tfsdk:"size"`
Timeouts timeouts.Value `tfsdk:"timeouts"`
// response fields
Id types.String `tfsdk:"id"`
Items []ItemsLBListDeletedModel `tfsdk:"items"`
EntryCount types.Int64 `tfsdk:"entry_count"`
}
type ItemsLBListDeletedModel struct {
HAMode types.Bool `tfsdk:"ha_mode"`
ACL types.String `tfsdk:"acl"`
BackendHAIP types.String `tfsdk:"backend_haip"`
Backends types.List `tfsdk:"backends"`
CreatedBy types.String `tfsdk:"created_by"`
CreatedTime types.Int64 `tfsdk:"created_time"`
DeletedBy types.String `tfsdk:"deleted_by"`
DeletedTime types.Int64 `tfsdk:"deleted_time"`
Description types.String `tfsdk:"desc"`
DPAPIUser types.String `tfsdk:"dp_api_user"`
DPAPIPassword types.String `tfsdk:"dp_api_password"`
ExtNetID types.Int64 `tfsdk:"extnet_id"`
FrontendHAIP types.String `tfsdk:"frontend_haip"`
Frontends types.List `tfsdk:"frontends"`
GID types.Int64 `tfsdk:"gid"`
GUID types.Int64 `tfsdk:"guid"`
LBID types.Int64 `tfsdk:"lb_id"`
ManagerId types.Int64 `tfsdk:"manager_id"`
ManagerType types.String `tfsdk:"manager_type"`
Milestones types.Int64 `tfsdk:"milestones"`
Name types.String `tfsdk:"name"`
PartK8s types.Bool `tfsdk:"part_k8s"`
PrimaryNode types.Object `tfsdk:"primary_node"`
RGName types.String `tfsdk:"rg_name"`
RGID types.Int64 `tfsdk:"rg_id"`
SecondaryNode types.Object `tfsdk:"secondary_node"`
Status types.String `tfsdk:"status"`
TechStatus types.String `tfsdk:"tech_status"`
UpdatedBy types.String `tfsdk:"updated_by"`
UpdatedTime types.Int64 `tfsdk:"updated_time"`
UserManaged types.Bool `tfsdk:"user_managed"`
VINSID types.Int64 `tfsdk:"vins_id"`
}

View File

@@ -0,0 +1,52 @@
package models
import (
"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type ResourceLBModel struct {
// required fields
RGID types.Int64 `tfsdk:"rg_id"`
Name types.String `tfsdk:"name"`
ExtNetID types.Int64 `tfsdk:"extnet_id"`
VINSID types.Int64 `tfsdk:"vins_id"`
Start types.Bool `tfsdk:"start"`
// optional fields
HAMode types.Bool `tfsdk:"ha_mode"`
ACL types.String `tfsdk:"acl"`
Description types.String `tfsdk:"desc"`
Enable types.Bool `tfsdk:"enable"`
Restart types.Bool `tfsdk:"restart"`
ConfigReset types.Bool `tfsdk:"config_reset"`
Permanently types.Bool `tfsdk:"permanently"`
Restore types.Bool `tfsdk:"restore"`
Safe types.Bool `tfsdk:"safe"`
SysctlParams types.List `tfsdk:"sysctl_params"`
Timeouts timeouts.Value `tfsdk:"timeouts"`
// response fields
BackendHAIP types.String `tfsdk:"backend_haip"`
Backends types.List `tfsdk:"backends"`
CKey types.String `tfsdk:"ckey"`
DPAPIUser types.String `tfsdk:"dp_api_user"`
DPAPIPassword types.String `tfsdk:"dp_api_password"`
FrontendHAIP types.String `tfsdk:"frontend_haip"`
Frontends types.List `tfsdk:"frontends"`
GID types.Int64 `tfsdk:"gid"`
GUID types.Int64 `tfsdk:"guid"`
ID types.String `tfsdk:"id"`
ImageID types.Int64 `tfsdk:"image_id"`
LBID types.Int64 `tfsdk:"lb_id"`
ManagerId types.Int64 `tfsdk:"manager_id"`
ManagerType types.String `tfsdk:"manager_type"`
Meta types.List `tfsdk:"meta"`
Milestones types.Int64 `tfsdk:"milestones"`
PartK8s types.Bool `tfsdk:"part_k8s"`
PrimaryNode types.Object `tfsdk:"primary_node"`
SecondaryNode types.Object `tfsdk:"secondary_node"`
Status types.String `tfsdk:"status"`
TechStatus types.String `tfsdk:"tech_status"`
UserManaged types.Bool `tfsdk:"user_managed"`
}

View File

@@ -0,0 +1,24 @@
package models
import (
"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type ResourceLBBackendModel struct {
Algorithm types.String `tfsdk:"algorithm"`
LBID types.Int64 `tfsdk:"lb_id"`
Name types.String `tfsdk:"name"`
ID types.String `tfsdk:"id"`
Timeouts timeouts.Value `tfsdk:"timeouts"`
GUID types.String `tfsdk:"guid"`
Inter types.Int64 `tfsdk:"inter"`
DownInter types.Int64 `tfsdk:"downinter"`
Rise types.Int64 `tfsdk:"rise"`
Fall types.Int64 `tfsdk:"fall"`
SlowStart types.Int64 `tfsdk:"slowstart"`
MaxConn types.Int64 `tfsdk:"maxconn"`
MaxQueue types.Int64 `tfsdk:"maxqueue"`
Weight types.Int64 `tfsdk:"weight"`
Servers types.List `tfsdk:"servers"`
}

View File

@@ -0,0 +1,26 @@
package models
import (
"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type ResourceLBBackendServerModel struct {
LBID types.Int64 `tfsdk:"lb_id"`
Backend types.String `tfsdk:"backend_name"`
Name types.String `tfsdk:"name"`
Address types.String `tfsdk:"address"`
Port types.Int64 `tfsdk:"port"`
Check types.String `tfsdk:"check"`
Inter types.Int64 `tfsdk:"inter"`
GUID types.String `tfsdk:"guid"`
DownInter types.Int64 `tfsdk:"downinter"`
Rise types.Int64 `tfsdk:"rise"`
Fall types.Int64 `tfsdk:"fall"`
SlowStart types.Int64 `tfsdk:"slowstart"`
MaxConn types.Int64 `tfsdk:"maxconn"`
MaxQueue types.Int64 `tfsdk:"maxqueue"`
Weight types.Int64 `tfsdk:"weight"`
ID types.String `tfsdk:"id"`
Timeouts timeouts.Value `tfsdk:"timeouts"`
}

View File

@@ -0,0 +1,16 @@
package models
import (
"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type ResourceLBFrontendModel struct {
Backend types.String `tfsdk:"backend_name"`
Bindings types.List `tfsdk:"bindings"`
LBID types.Int64 `tfsdk:"lb_id"`
GUID types.String `tfsdk:"guid"`
Name types.String `tfsdk:"name"`
ID types.String `tfsdk:"id"`
Timeouts timeouts.Value `tfsdk:"timeouts"`
}

View File

@@ -0,0 +1,17 @@
package models
import (
"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type ResourceLBFrontendBindModel struct {
LBID types.Int64 `tfsdk:"lb_id"`
Frontend types.String `tfsdk:"frontend_name"`
Address types.String `tfsdk:"address"`
GUID types.String `tfsdk:"guid"`
Name types.String `tfsdk:"name"`
Port types.Int64 `tfsdk:"port"`
ID types.String `tfsdk:"id"`
Timeouts timeouts.Value `tfsdk:"timeouts"`
}