0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-06 14:03:58 +00:00
terraform-provider-proxmox/fwprovider/cluster/sdn/sdn_zone_model.go
MacherelR 48bb57f0c7 fix(sdn): resolve linter warnings and apply gofumpt formatting
Signed-off-by: MacherelR <64424331+MacherelR@users.noreply.github.com>
2025-06-24 08:32:48 +02:00

89 lines
3.9 KiB
Go

package sdn
import (
"github.com/bpg/terraform-provider-proxmox/fwprovider/helpers/ptrConversion"
"github.com/bpg/terraform-provider-proxmox/proxmox/cluster/sdn/zones"
"github.com/hashicorp/terraform-plugin-framework/types"
)
type sdnZoneModel struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Type types.String `tfsdk:"type"`
IPAM types.String `tfsdk:"ipam"`
DNS types.String `tfsdk:"dns"`
ReverseDNS types.String `tfsdk:"reversedns"`
DNSZone types.String `tfsdk:"dns_zone"`
Nodes types.String `tfsdk:"nodes"`
MTU types.Int64 `tfsdk:"mtu"`
// VLAN.
Bridge types.String `tfsdk:"bridge"`
// QinQ.
ServiceVLAN types.Int64 `tfsdk:"tag"`
ServiceVLANProtocol types.String `tfsdk:"vlan_protocol"`
// VXLAN.
Peers types.String `tfsdk:"peers"`
// EVPN.
Controller types.String `tfsdk:"controller"`
ExitNodes types.String `tfsdk:"exit_nodes"`
PrimaryExitNode types.String `tfsdk:"primary_exit_node"`
RouteTargetImport types.String `tfsdk:"rt_import"`
VRFVXLANID types.Int64 `tfsdk:"vrf_vxlan"`
ExitNodesLocalRouting types.Bool `tfsdk:"exit_nodes_local_routing"`
AdvertiseSubnets types.Bool `tfsdk:"advertise_subnets"`
DisableARPNDSuppression types.Bool `tfsdk:"disable_arp_nd_suppression"`
}
func (m *sdnZoneModel) importFromAPI(name string, data *zones.ZoneData) {
m.ID = types.StringValue(name)
m.Name = types.StringValue(name)
m.Type = types.StringPointerValue(data.Type)
m.IPAM = types.StringPointerValue(data.IPAM)
m.DNS = types.StringPointerValue(data.DNS)
m.ReverseDNS = types.StringPointerValue(data.ReverseDNS)
m.DNSZone = types.StringPointerValue(data.DNSZone)
m.Nodes = types.StringPointerValue(data.Nodes)
m.MTU = types.Int64PointerValue(data.MTU)
m.Bridge = types.StringPointerValue(data.Bridge)
m.ServiceVLAN = types.Int64PointerValue(data.ServiceVLAN)
m.ServiceVLANProtocol = types.StringPointerValue(data.ServiceVLANProtocol)
m.Peers = types.StringPointerValue(data.Peers)
m.Controller = types.StringPointerValue(data.Controller)
m.ExitNodes = types.StringPointerValue(data.ExitNodes)
m.PrimaryExitNode = types.StringPointerValue(data.PrimaryExitNode)
m.RouteTargetImport = types.StringPointerValue(data.RouteTargetImport)
m.VRFVXLANID = types.Int64PointerValue(data.VRFVXLANID)
m.ExitNodesLocalRouting = types.BoolPointerValue(ptrConversion.Int64ToBoolPtr(data.ExitNodesLocalRouting))
m.AdvertiseSubnets = types.BoolPointerValue(ptrConversion.Int64ToBoolPtr(data.AdvertiseSubnets))
m.DisableARPNDSuppression = types.BoolPointerValue(ptrConversion.Int64ToBoolPtr(data.DisableARPNDSuppression))
}
func (m *sdnZoneModel) toAPIRequestBody() *zones.ZoneRequestData {
data := &zones.ZoneRequestData{}
data.ID = m.Name.ValueString()
data.Type = m.Type.ValueStringPointer()
data.IPAM = m.IPAM.ValueStringPointer()
data.DNS = m.DNS.ValueStringPointer()
data.ReverseDNS = m.ReverseDNS.ValueStringPointer()
data.DNSZone = m.DNSZone.ValueStringPointer()
data.Nodes = m.Nodes.ValueStringPointer()
data.MTU = m.MTU.ValueInt64Pointer()
data.Bridge = m.Bridge.ValueStringPointer()
data.ServiceVLAN = m.ServiceVLAN.ValueInt64Pointer()
data.ServiceVLANProtocol = m.ServiceVLANProtocol.ValueStringPointer()
data.Peers = m.Peers.ValueStringPointer()
data.Controller = m.Controller.ValueStringPointer()
data.ExitNodes = m.ExitNodes.ValueStringPointer()
data.PrimaryExitNode = m.PrimaryExitNode.ValueStringPointer()
data.RouteTargetImport = m.RouteTargetImport.ValueStringPointer()
data.VRFVXLANID = m.VRFVXLANID.ValueInt64Pointer()
data.ExitNodesLocalRouting = ptrConversion.BoolToInt64Ptr(m.ExitNodesLocalRouting.ValueBoolPointer())
data.AdvertiseSubnets = ptrConversion.BoolToInt64Ptr(m.AdvertiseSubnets.ValueBoolPointer())
data.DisableARPNDSuppression = ptrConversion.BoolToInt64Ptr(m.DisableARPNDSuppression.ValueBoolPointer())
return data
}