v1.16.7
This commit is contained in:
dayterr
2026-10-09 16:23:35 +03:00
parent 25e2242360
commit 8cde0e9371
80 changed files with 2303 additions and 606 deletions

View File

@@ -54,7 +54,7 @@ type CreateRequest struct {
// VLAN tag identifier
// Required: false
VLANTag string `url:"vlan_tag,omitempty" json:"vlan_tag,omitempty" validate:"omitempty,trunkTags"`
VLANTag uint64 `url:"vlan_tag,omitempty" json:"vlan_tag,omitempty" validate:"omitempty,min=1,max=4094"`
}
type ExternalNetworkPortRequest struct {
@@ -63,8 +63,8 @@ type ExternalNetworkPortRequest struct {
AccessGroupID string `url:"access_group_id" json:"access_group_id" validate:"required"`
// Access group name
// Required: false
AccessGroupName string `url:"access_group_name,omitempty" json:"access_group_name,omitempty"`
// Required: true
AccessGroupName string `url:"access_group_name" json:"access_group_name" validate:"required"`
// Comment for the external network port
// Required: true
@@ -79,28 +79,28 @@ type ExternalNetworkPortRequest struct {
Enabled bool `url:"enabled" json:"enabled"`
// IPv4
// Required: false
IPv4 string `url:"ipv4,omitempty" json:"ipv4,omitempty"`
// Required: true
IPv4 string `url:"ipv4" json:"ipv4" validate:"required"`
// IPv6
// Required: false
IPv6 string `url:"ipv6,omitempty" json:"ipv6,omitempty"`
// Required: true
IPv6 string `url:"ipv6" json:"ipv6" validate:"required"`
// IPv6 Config
// Required: false
IPv6Config *IPv6ConfigRequest `url:"-" json:"ipv6_config,omitempty"`
// Required: true
IPv6Config *IPv6ConfigRequest `url:"-" json:"ipv6_config" validate:"required"`
// MAC address
// Required: true
MAC string `url:"mac" json:"mac" validate:"required"`
// Router gateway port
// Required: false
RouterGatewayPort *RouterGatewayPortRequest `url:"-" json:"router_gateway_port,omitempty"`
// Required: true
RouterGatewayPort *RouterGatewayPortRequest `url:"-" json:"router_gateway_port" validate:"required"`
// Floating IP
// Required: false
FloatingIP *FloatingIPRequest `url:"-" json:"floating_ip,omitempty"`
// Required: true
FloatingIP *FloatingIPRequest `url:"-" json:"floating_ip" validate:"required"`
}
type IPv6ConfigRequest struct {
@@ -167,15 +167,15 @@ type FloatingIPRequest struct {
// External network port
// Required: true
ExternalNetworkPort string `url:"external_network_port" json:"external_network_port" validate:"required"`
ExternalNetworkPort *ExternalNetworkPortRequest `url:"-" json:"external_network_port" validate:"required"`
// ID of the Floating IP
// Required: true
ID string `url:"id" json:"id" validate:"required"`
// Logical port
// Required: false
LogicalPort *LogicalPortRequest `url:"-" json:"logical_port,omitempty"`
// Required: true
LogicalPort *LogicalPortRequest `url:"-" json:"logical_port" validate:"required"`
// Router
// Required: true
@@ -185,6 +185,14 @@ type FloatingIPRequest struct {
// Required: true
UpdatedAt time.Time `url:"updated_at" json:"updated_at" validate:"required"`
// ID of the user who created the floating IP
// Required: false
CreatedBy string `url:"created_by,omitempty" json:"created_by,omitempty"`
// ID of the user who last updated the floating IP
// Required: false
UpdatedBy string `url:"updated_by,omitempty" json:"updated_by,omitempty"`
// ID of version
// Required: true
VersionID uint64 `url:"version_id" json:"version_id" validate:"required"`
@@ -209,7 +217,7 @@ type LogicalPortRequest struct {
// Address detection
// Required: true
AddressDetection bool `url:"address_detection" json:"address_detection" validate:"required"`
AddressDetection bool `url:"address_detection" json:"address_detection"`
// Description
// Required: true
@@ -219,14 +227,18 @@ type LogicalPortRequest struct {
// Required: false
CreatedAt time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
// User-friendly name for router
// User-friendly name for logical port
// Required: true
RouterDisplayName string `url:"router_display_name" json:"router_display_name" validate:"required"`
DisplayName string `url:"display_name" json:"display_name" validate:"required"`
// Whether the logical pork is enabled
// Required: true
Enabled bool `url:"enabled" json:"enabled"`
// Exclude firewall information
// Required: true
ExcludeFirewall *ExcludeFirewallRequest `url:"-" json:"exclude_firewall" validate:"required"`
// External Network ID
// Required: false
ExternalNetworkID string `url:"external_network_id,omitempty" json:"external_network_id,omitempty"`
@@ -236,38 +248,66 @@ type LogicalPortRequest struct {
Hypervisor string `url:"hypervisor" json:"hypervisor" validate:"required"`
// User-friendly name for hypervisor
// Required: true
HypervisorDisplayName string `url:"hypervisor_display_name" json:"hypervisor_display_name" validate:"required"`
// Labels
// Required: false
HypervisorDisplayName string `url:"hypervisor_display_name,omitempty" json:"hypervisor_display_name,omitempty"`
Labels *LabelsRequest `url:"-" json:"labels,omitempty"`
// Live Migration Target Hv
// Required: true
LiveMigrationTargetHV string `url:"live_migration_target_hv" json:"live_migration_target_hv" validate:"required"`
// Required: false
LiveMigrationTargetHV string `url:"live_migration_target_hv,omitempty" json:"live_migration_target_hv,omitempty"`
// Status
// Required: true
Status *StatusRequest `url:"-" json:"status" validate:"required"`
// Required: false
Status *StatusRequest `url:"-" json:"status,omitempty"`
// Port bindings
// Required: true
Bindings *PortBindingsRequest `url:"-" json:"bindings" validate:"required"`
// Required: false
Bindings *PortBindingsRequest `url:"-" json:"bindings,omitempty"`
// Unique Identifier
// Required: true
UniqueIDentifier string `url:"unique_identifier" json:"unique_identifier" validate:"required"`
// Updated at
// Required: true
UpdatedAt time.Time `url:"updated_at" json:"updated_at" validate:"required"`
// Required: false
UpdatedAt time.Time `url:"updated_at,omitempty" json:"updated_at,omitempty"`
// ID of version
// Required: true
VersionID uint64 `url:"version_id" json:"version_id" validate:"required"`
}
type StatusRequest struct {
// Common
type ExcludeFirewallRequest struct {
// Exclusion reason
// Required: false
ExclusionReason string `url:"exclusion_reason,omitempty" json:"exclusion_reason,omitempty"`
// Whether logical port addresses are excluded from firewall
// Required: false
LogicalPortAddressesExcluded bool `url:"logical_port_addresses_excluded,omitempty" json:"logical_port_addresses_excluded,omitempty"`
// Whether logical port is excluded from firewall
// Required: true
Common string `url:"common" json:"common" validate:"required"`
LogicalPortExcluded bool `url:"logical_port_excluded" json:"logical_port_excluded"`
}
type LabelsRequest struct {
// VM ID
// Required: true
VMID string `url:"vm_id" json:"vm_id" validate:"required"`
// VM name
// Required: false
VMName string `url:"vm_name,omitempty" json:"vm_name,omitempty"`
}
type StatusRequest struct {
// Operation status
// Required: true
OperationStatus string `url:"operation_status" json:"operation_status" validate:"required"`
// Hypervisors status
// Required: false
@@ -280,24 +320,20 @@ type PortBindingsRequest struct {
ID string `url:"id" json:"id" validate:"required"`
// User-friendly name for segment
// Required: true
SegmentDisplayName string `url:"segment_display_name" json:"segment_display_name" validate:"required"`
// Required: false
SegmentDisplayName string `url:"segment_display_name,omitempty" json:"segment_display_name,omitempty"`
// Segment ID
// Required: true
SegmentID string `url:"segment_id" json:"segment_id" validate:"required"`
// Required: false
SegmentID string `url:"segment_id,omitempty" json:"segment_id,omitempty"`
// Port security
// Required: true
PortSecurity bool `url:"port_security" json:"port_security" validate:"required"`
PortSecurity bool `url:"port_security" json:"port_security"`
// Address detection
// Required: true
AddressDetection bool `url:"address_detection" json:"address_detection" validate:"required"`
// Is Exclude From Firewall
// Required: true
IsExcludedFromFirewall bool `url:"is_excluded_from_firewall" json:"is_excluded_from_firewall" validate:"required"`
AddressDetection bool `url:"address_detection" json:"address_detection"`
// ID of version
// Required: true
@@ -312,14 +348,14 @@ type PortBindingsRequest struct {
UpdatedAt time.Time `url:"updated_at" json:"updated_at" validate:"required"`
// Logical port addresses
// Required: true
LogicalPortAddresses []LogicalPortAddressRequest `url:"-" json:"logical_port_addresses" validate:"required"`
// Required: false
LogicalPortAddresses []LogicalPortAddressRequest `url:"-" json:"logical_port_addresses,omitempty"`
}
type HypervisorStatusRequest struct {
// Status
// Operation status
// Required: true
Status string `url:"status" json:"status" validate:"required"`
OperationStatus string `url:"operation_status" json:"operation_status" validate:"required"`
// Name of hypervisor
// Required: true
@@ -351,13 +387,13 @@ type LogicalPortAddressRequest struct {
// Required: false
IsDiscovered bool `url:"is_discovered,omitempty" json:"is_discovered,omitempty"`
// Is discovered
// Required: true
IsPrimary bool `url:"is_primary" json:"is_primary" validate:"required"`
// Is primary
// Required: false
IsPrimary bool `url:"is_primary,omitempty" json:"is_primary,omitempty"`
// MAC
// Required: false
MAC string `url:"mac,omitempty" json:"mac,omitempty"`
// Required: true
MAC string `url:"mac" json:"mac" validate:"required"`
// ID
// Required: true
@@ -368,62 +404,62 @@ type LogicalPortAddressRequest struct {
LogicalPortID string `url:"logical_port_id" json:"logical_port_id" validate:"required"`
// Assigned at
// Required: false
AssignedAt time.Time `url:"assigned_at,omitempty" json:"assigned_at,omitempty"`
// Required: true
AssignedAt time.Time `url:"assigned_at" json:"assigned_at" validate:"required"`
}
type RouterRequest struct {
// Access group ID
// Required: false
AccessGroupID string `url:"access_group_id,omitempty" json:"access_group_id,omitempty"`
// Required: true
AccessGroupID string `url:"access_group_id" json:"access_group_id" validate:"required"`
// Access group name
// Required: false
AccessGroupName string `url:"access_group_name,omitempty" json:"access_group_name,omitempty"`
// Required: true
AccessGroupName string `url:"access_group_name" json:"access_group_name" validate:"required"`
// Created at
// Required: false
CreatedAt time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
// Required: true
CreatedAt time.Time `url:"created_at" json:"created_at" validate:"required"`
// Detailed description of the router
// Required: false
Description string `url:"description,omitempty" json:"description,omitempty"`
// Required: true
Description string `url:"description" json:"description" validate:"required"`
// User-friendly name for the router
// Required: true
DisplayName string `url:"display_name" json:"display_name" validate:"required"`
// Whether the router is enabled
// Required: false
Enabled bool `url:"enabled,omitempty" json:"enabled,omitempty"`
// Required: true
Enabled bool `url:"enabled" json:"enabled"`
// Gateway ports
// Required: false
GatewayPorts []GatewayPortRequest `url:"-" json:"gateway_ports,omitempty"`
// Required: true
GatewayPorts []GatewayPortRequest `url:"-" json:"gateway_ports" validate:"required"`
// ID
// Required: true
ID string `url:"id" json:"id" validate:"required"`
// Policies
// Required: false
Policies []RouterPolicyRequest `url:"-" json:"policies,omitempty"`
// Required: true
Policies []RouterPolicyRequest `url:"-" json:"policies" validate:"required"`
// Ports
// Required: false
Ports []RouterPortRequest `url:"-" json:"ports,omitempty"`
// Required: true
Ports []RouterPortRequest `url:"-" json:"ports" validate:"required"`
// Status
// Required: false
Status *StatusRequest `url:"-" json:"status,omitempty"`
// Required: true
Status *StatusRequest `url:"-" json:"status" validate:"required"`
// Updated at
// Required: false
UpdatedAt time.Time `url:"updated_at,omitempty" json:"updated_at,omitempty"`
// Required: true
UpdatedAt time.Time `url:"updated_at" json:"updated_at" validate:"required"`
// ID of version
// Required: false
VersionID uint64 `url:"version_id,omitempty" json:"version_id,omitempty"`
// Required: true
VersionID uint64 `url:"version_id" json:"version_id" validate:"required"`
}
type GatewayPortRequest struct {
@@ -436,28 +472,28 @@ type GatewayPortRequest struct {
Description string `url:"description" json:"description" validate:"required"`
// L4 port max
// Required: false
ExternalL4PortMax int64 `url:"external_l4_port_max,omitempty" json:"external_l4_port_max,omitempty"`
// Required: true
ExternalL4PortMax int64 `url:"external_l4_port_max" json:"external_l4_port_max" validate:"required"`
// L4 port min
// Required: false
ExternalL4PortMin int64 `url:"external_l4_port_min,omitempty" json:"external_l4_port_min,omitempty"`
// Required: true
ExternalL4PortMin int64 `url:"external_l4_port_min" json:"external_l4_port_min" validate:"required"`
// External network port
// Required: true
ExternalNetworkPort interface{} `url:"external_network_port" json:"external_network_port" validate:"required"`
ExternalNetworkPort *ExternalNetworkPortRequest `url:"-" json:"external_network_port" validate:"required"`
// ID of port
// Required: false
ID string `url:"id,omitempty" json:"id,omitempty"`
// Required: true
ID string `url:"id" json:"id" validate:"required"`
// SNAT Enabled
// Required: true
SNATEnabled bool `url:"snat_enabled" json:"snat_enabled"`
// Status
// Required: false
Status *StatusRequest `url:"-" json:"status,omitempty"`
// Required: true
Status *StatusRequest `url:"-" json:"status" validate:"required"`
// Updated at
// Required: true
@@ -482,12 +518,12 @@ type RouterPolicyRequest struct {
DisplayName string `url:"display_name" json:"display_name" validate:"required"`
// Whether the policy is enabled
// Required: false
Enabled bool `url:"enabled,omitempty" json:"enabled,omitempty"`
// Required: true
Enabled bool `url:"enabled" json:"enabled"`
// ID of port
// Required: false
ID string `url:"id,omitempty" json:"id,omitempty"`
// Required: true
ID string `url:"id" json:"id" validate:"required"`
// Match
// Required: true
@@ -528,16 +564,16 @@ type RouterPortRequest struct {
Enabled bool `url:"enabled" json:"enabled"`
// ID of port
// Required: false
ID string `url:"id,omitempty" json:"id,omitempty"`
// Next IPv4 address
// Required: true
NextIPv4Address []string `url:"next_ipv4_address" json:"next_ipv4_address" validate:"required"`
ID string `url:"id" json:"id" validate:"required"`
// Next IPv6 address
// IPv4 address
// Required: true
NextIPv6Address []string `url:"next_ipv6_address" json:"next_ipv6_address" validate:"required"`
IPv4Address string `url:"ipv4_address" json:"ipv4_address" validate:"required"`
// IPv6 address
// Required: true
IPv6Address string `url:"ipv6_address" json:"ipv6_address" validate:"required"`
// IPv6 Config
// Required: true
@@ -556,8 +592,8 @@ type RouterPortRequest struct {
SegmentID string `url:"segment_id" json:"segment_id" validate:"required"`
// Status
// Required: false
Status *StatusRequest `url:"-" json:"status,omitempty"`
// Required: true
Status *StatusRequest `url:"-" json:"status" validate:"required"`
// Updated at
// Required: true
@@ -598,12 +634,16 @@ type SegmentRequest struct {
DisplayName string `url:"display_name" json:"display_name" validate:"required"`
// Whether the segment is enabled
// Required: false
Enabled bool `url:"enabled,omitempty" json:"enabled,omitempty"`
// Required: true
Enabled bool `url:"enabled" json:"enabled"`
// ID of segment
// Required: true
ID string `url:"id" json:"id" validate:"required"`
// L2 connection port
// Required: false
ID string `url:"id,omitempty" json:"id,omitempty"`
L2ConnectionPort *L2ConnectionPortRequest `url:"-" json:"l2_connection_port,omitempty"`
// Logical ports info
// Required: false
@@ -625,6 +665,10 @@ type SegmentRequest struct {
// Required: false
SubnetV6 string `url:"subnet_v6,omitempty" json:"subnet_v6,omitempty"`
// Type of segment
// Required: true
Type string `url:"type" json:"type" validate:"required"`
// Updated at
// Required: true
UpdatedAt time.Time `url:"updated_at" json:"updated_at" validate:"required"`
@@ -634,6 +678,86 @@ type SegmentRequest struct {
VersionID uint64 `url:"version_id" json:"version_id" validate:"required"`
}
type L2ConnectionPortRequest struct {
// Access group ID
// Required: true
AccessGroupID string `url:"access_group_id" json:"access_group_id" validate:"required"`
// Created at
// Required: true
CreatedAt time.Time `url:"created_at" json:"created_at" validate:"required"`
// ID of the L2 connection port
// Required: true
ID string `url:"id" json:"id" validate:"required"`
// L2 external network details
// Required: false
L2ExternalNetwork *L2ExternalNetworkRequest `url:"-" json:"l2_external_network,omitempty"`
// Updated at
// Required: true
UpdatedAt time.Time `url:"updated_at" json:"updated_at" validate:"required"`
// ID of the user who last updated the port
// Required: false
UpdatedBy string `url:"updated_by,omitempty" json:"updated_by,omitempty"`
// ID of the user who created the port
// Required: false
CreatedBy string `url:"created_by,omitempty" json:"created_by,omitempty"`
// ID of version
// Required: true
VersionID uint64 `url:"version_id" json:"version_id" validate:"required"`
}
type L2ExternalNetworkRequest struct {
// Bridge network name
// Required: true
BridgeNetworkName string `url:"bridge_network_name" json:"bridge_network_name" validate:"required"`
// Created at
// Required: true
CreatedAt time.Time `url:"created_at" json:"created_at" validate:"required"`
// Detailed description of the network
// Required: true
Description string `url:"description" json:"description" validate:"required"`
// User-friendly name for the network
// Required: true
DisplayName string `url:"display_name" json:"display_name" validate:"required"`
// List of hypervisor IDs attached to the network
// Required: true
Hypervisors []string `url:"hypervisors" json:"hypervisors" validate:"required"`
// ID of the network
// Required: true
ID string `url:"id" json:"id" validate:"required"`
// Updated at
// Required: true
UpdatedAt time.Time `url:"updated_at" json:"updated_at" validate:"required"`
// ID of version
// Required: true
VersionID uint64 `url:"version_id" json:"version_id" validate:"required"`
// VLAN tag
// Required: false
VLANTag uint64 `url:"vlan_tag,omitempty" json:"vlan_tag,omitempty"`
// ID of the user who last updated the network
// Required: false
UpdatedBy string `url:"updated_by,omitempty" json:"updated_by,omitempty"`
// ID of the user who created the network
// Required: false
CreatedBy string `url:"created_by,omitempty" json:"created_by,omitempty"`
}
type DHCPv4ConfigRequest struct {
// DNS
// Required: false
@@ -682,12 +806,12 @@ type DHCPv6ConfigRequest struct {
ID string `url:"id,omitempty" json:"id,omitempty"`
// Lease time
// Required: true
LeaseTime int64 `url:"lease_time" json:"lease_time" validate:"required"`
// Required: false
LeaseTime int64 `url:"lease_time,omitempty" json:"lease_time,omitempty"`
// Server MAC
// Required: true
ServerMAC string `url:"server_mac" json:"server_mac" validate:"required"`
// Required: false
ServerMAC string `url:"server_mac,omitempty" json:"server_mac,omitempty"`
// Whether the config is enabled
// Required: true
@@ -700,8 +824,8 @@ type EntityInfoRequest struct {
DisplayName string `url:"display_name" json:"display_name" validate:"required"`
// ID of entity
// Required: false
ID string `url:"id,omitempty" json:"id,omitempty"`
// Required: true
ID string `url:"id" json:"id" validate:"required"`
}
// Create creates extnet