Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
 - type Client
 - func (c *Client) Create(ctx context.Context, req CreateRequest) error
 - func (c *Client) Delete(ctx context.Context, req DeleteRequest) error
 - func (c *Client) Find(ctx context.Context, req FindRequest) (map[string]interface{}, error)
 - func (c *Client) Index(ctx context.Context, req IndexRequest) ([]IndexResponse, error)
 - func (c *Client) Update(ctx context.Context, req UpdateRequest) error
 
- type CreateRequest
 - type DeleteRequest
 - type FindRequest
 - type HTTPClient
 - type IndexRequest
 - type IndexResponse
 - type Type
 - type UpdateRequest
 - type VlanProtocol
 
Constants ¶
      View Source
      
  
const ( Type_EVPN Type = "evpn" Type_FAUCET Type = "faucet" Type_QINQ Type = "qinq" Type_SIMPLE Type = "simple" Type_VLAN Type = "vlan" Type_VXLAN Type = "vxlan" VlanProtocol_802_1Q VlanProtocol = "802.1q" VlanProtocol_802_1AD VlanProtocol = "802.1ad" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
	// contains filtered or unexported fields
}
    func New ¶
func New(c HTTPClient) *Client
func (*Client) Create ¶
func (c *Client) Create(ctx context.Context, req CreateRequest) error
Create Create a new sdn zone object.
func (*Client) Delete ¶
func (c *Client) Delete(ctx context.Context, req DeleteRequest) error
Delete Delete sdn zone object configuration.
func (*Client) Index ¶
func (c *Client) Index(ctx context.Context, req IndexRequest) ([]IndexResponse, error)
Index SDN zones index.
type CreateRequest ¶
type CreateRequest struct {
	Type Type   `url:"type" json:"type"` // Plugin type.
	Zone string `url:"zone" json:"zone"` // The SDN zone object identifier.
	// The following parameters are optional
	AdvertiseSubnets         *util.PVEBool `url:"advertise-subnets,omitempty" json:"advertise-subnets,omitempty"` // Advertise evpn subnets if you have silent hosts
	Bridge                   *string       `url:"bridge,omitempty" json:"bridge,omitempty"`
	BridgeDisableMacLearning *util.PVEBool `url:"bridge-disable-mac-learning,omitempty" json:"bridge-disable-mac-learning,omitempty"` // Disable auto mac learning.
	Controller               *string       `url:"controller,omitempty" json:"controller,omitempty"`                                   // Frr router name
	DisableArpNdSuppression  *util.PVEBool `url:"disable-arp-nd-suppression,omitempty" json:"disable-arp-nd-suppression,omitempty"`   // Disable ipv4 arp && ipv6 neighbour discovery suppression
	Dns                      *string       `url:"dns,omitempty" json:"dns,omitempty"`                                                 // dns api server
	Dnszone                  *string       `url:"dnszone,omitempty" json:"dnszone,omitempty"`                                         // dns domain zone ex: mydomain.com
	DpId                     *int          `url:"dp-id,omitempty" json:"dp-id,omitempty"`                                             // Faucet dataplane id
	Exitnodes                *string       `url:"exitnodes,omitempty" json:"exitnodes,omitempty"`                                     // List of cluster node names.
	ExitnodesLocalRouting    *util.PVEBool `url:"exitnodes-local-routing,omitempty" json:"exitnodes-local-routing,omitempty"`         // Allow exitnodes to connect to evpn guests
	ExitnodesPrimary         *string       `url:"exitnodes-primary,omitempty" json:"exitnodes-primary,omitempty"`                     // Force traffic to this exitnode first.
	Ipam                     *string       `url:"ipam,omitempty" json:"ipam,omitempty"`                                               // use a specific ipam
	Mac                      *string       `url:"mac,omitempty" json:"mac,omitempty"`                                                 // Anycast logical router mac address
	Mtu                      *int          `url:"mtu,omitempty" json:"mtu,omitempty"`                                                 // MTU
	Nodes                    *string       `url:"nodes,omitempty" json:"nodes,omitempty"`                                             // List of cluster node names.
	Peers                    *string       `url:"peers,omitempty" json:"peers,omitempty"`                                             // peers address list.
	Reversedns               *string       `url:"reversedns,omitempty" json:"reversedns,omitempty"`                                   // reverse dns api server
	RtImport                 *string       `url:"rt-import,omitempty" json:"rt-import,omitempty"`                                     // Route-Target import
	Tag                      *int          `url:"tag,omitempty" json:"tag,omitempty"`                                                 // Service-VLAN Tag
	VlanProtocol             *VlanProtocol `url:"vlan-protocol,omitempty" json:"vlan-protocol,omitempty"`
	VrfVxlan                 *int          `url:"vrf-vxlan,omitempty" json:"vrf-vxlan,omitempty"` // l3vni.
}
    type DeleteRequest ¶
type DeleteRequest struct {
	Zone string `url:"zone" json:"zone"` // The SDN zone object identifier.
}
    type FindRequest ¶
type FindRequest struct {
	Zone string `url:"zone" json:"zone"` // The SDN zone object identifier.
	// The following parameters are optional
	Pending *util.PVEBool `url:"pending,omitempty" json:"pending,omitempty"` // Display pending config.
	Running *util.PVEBool `url:"running,omitempty" json:"running,omitempty"` // Display running config.
}
    type HTTPClient ¶
type IndexRequest ¶
type IndexRequest struct {
	// The following parameters are optional
	Pending *util.PVEBool `url:"pending,omitempty" json:"pending,omitempty"` // Display pending config.
	Running *util.PVEBool `url:"running,omitempty" json:"running,omitempty"` // Display running config.
	Type    *Type         `url:"type,omitempty" json:"type,omitempty"`       // Only list SDN zones of specific type
}
    type IndexResponse ¶
type IndexResponse struct {
	Type string `url:"type" json:"type"`
	Zone string `url:"zone" json:"zone"`
	// The following parameters are optional
	Dns        *string `url:"dns,omitempty" json:"dns,omitempty"`
	Dnszone    *string `url:"dnszone,omitempty" json:"dnszone,omitempty"`
	Ipam       *string `url:"ipam,omitempty" json:"ipam,omitempty"`
	Mtu        *int    `url:"mtu,omitempty" json:"mtu,omitempty"`
	Nodes      *string `url:"nodes,omitempty" json:"nodes,omitempty"`
	Reversedns *string `url:"reversedns,omitempty" json:"reversedns,omitempty"`
	State      *string `url:"state,omitempty" json:"state,omitempty"`
}
    type UpdateRequest ¶
type UpdateRequest struct {
	Zone string `url:"zone" json:"zone"` // The SDN zone object identifier.
	// The following parameters are optional
	AdvertiseSubnets         *util.PVEBool `url:"advertise-subnets,omitempty" json:"advertise-subnets,omitempty"` // Advertise evpn subnets if you have silent hosts
	Bridge                   *string       `url:"bridge,omitempty" json:"bridge,omitempty"`
	BridgeDisableMacLearning *util.PVEBool `url:"bridge-disable-mac-learning,omitempty" json:"bridge-disable-mac-learning,omitempty"` // Disable auto mac learning.
	Controller               *string       `url:"controller,omitempty" json:"controller,omitempty"`                                   // Frr router name
	Delete                   *string       `url:"delete,omitempty" json:"delete,omitempty"`                                           // A list of settings you want to delete.
	Digest                   *string       `url:"digest,omitempty" json:"digest,omitempty"`                                           // Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.
	DisableArpNdSuppression  *util.PVEBool `url:"disable-arp-nd-suppression,omitempty" json:"disable-arp-nd-suppression,omitempty"`   // Disable ipv4 arp && ipv6 neighbour discovery suppression
	Dns                      *string       `url:"dns,omitempty" json:"dns,omitempty"`                                                 // dns api server
	Dnszone                  *string       `url:"dnszone,omitempty" json:"dnszone,omitempty"`                                         // dns domain zone ex: mydomain.com
	DpId                     *int          `url:"dp-id,omitempty" json:"dp-id,omitempty"`                                             // Faucet dataplane id
	Exitnodes                *string       `url:"exitnodes,omitempty" json:"exitnodes,omitempty"`                                     // List of cluster node names.
	ExitnodesLocalRouting    *util.PVEBool `url:"exitnodes-local-routing,omitempty" json:"exitnodes-local-routing,omitempty"`         // Allow exitnodes to connect to evpn guests
	ExitnodesPrimary         *string       `url:"exitnodes-primary,omitempty" json:"exitnodes-primary,omitempty"`                     // Force traffic to this exitnode first.
	Ipam                     *string       `url:"ipam,omitempty" json:"ipam,omitempty"`                                               // use a specific ipam
	Mac                      *string       `url:"mac,omitempty" json:"mac,omitempty"`                                                 // Anycast logical router mac address
	Mtu                      *int          `url:"mtu,omitempty" json:"mtu,omitempty"`                                                 // MTU
	Nodes                    *string       `url:"nodes,omitempty" json:"nodes,omitempty"`                                             // List of cluster node names.
	Peers                    *string       `url:"peers,omitempty" json:"peers,omitempty"`                                             // peers address list.
	Reversedns               *string       `url:"reversedns,omitempty" json:"reversedns,omitempty"`                                   // reverse dns api server
	RtImport                 *string       `url:"rt-import,omitempty" json:"rt-import,omitempty"`                                     // Route-Target import
	Tag                      *int          `url:"tag,omitempty" json:"tag,omitempty"`                                                 // Service-VLAN Tag
	VlanProtocol             *VlanProtocol `url:"vlan-protocol,omitempty" json:"vlan-protocol,omitempty"`
	VrfVxlan                 *int          `url:"vrf-vxlan,omitempty" json:"vrf-vxlan,omitempty"` // l3vni.
}
    type VlanProtocol ¶ added in v0.0.15
type VlanProtocol string
func PtrVlanProtocol ¶ added in v0.0.15
func PtrVlanProtocol(i VlanProtocol) *VlanProtocol
 Click to show internal directories. 
   Click to hide internal directories.