Documentation
¶
Index ¶
- type API
- type Alias
- type AliasCreateRequestBody
- type AliasGetResponseBody
- type AliasGetResponseData
- type AliasListResponseBody
- type AliasUpdateRequestBody
- type BaseRule
- type Client
- func (c *Client) AddCIDRToIPSet(ctx context.Context, id string, d IPSetGetResponseData) error
- func (c *Client) CreateAlias(ctx context.Context, d *AliasCreateRequestBody) error
- func (c *Client) CreateIPSet(ctx context.Context, d *IPSetCreateRequestBody) error
- func (c *Client) CreateRule(ctx context.Context, d *RuleCreateRequestBody) error
- func (c *Client) DeleteAlias(ctx context.Context, name string) error
- func (c *Client) DeleteIPSet(ctx context.Context, id string) error
- func (c *Client) DeleteIPSetContent(ctx context.Context, id string, cidr string) error
- func (c *Client) DeleteRule(ctx context.Context, pos int) error
- func (c *Client) GetAlias(ctx context.Context, name string) (*AliasGetResponseData, error)
- func (c *Client) GetIPSetContent(ctx context.Context, id string) ([]*IPSetGetResponseData, error)
- func (c *Client) GetOptions(ctx context.Context) (*OptionsGetResponseData, error)
- func (c *Client) GetOptionsID() string
- func (c *Client) GetRule(ctx context.Context, pos int) (*RuleGetResponseData, error)
- func (c *Client) GetRulesID() string
- func (c *Client) ListAliases(ctx context.Context) ([]*AliasGetResponseData, error)
- func (c *Client) ListIPSets(ctx context.Context) ([]*IPSetListResponseData, error)
- func (c *Client) ListRules(ctx context.Context) ([]*RuleListResponseData, error)
- func (c *Client) SetOptions(ctx context.Context, d *OptionsPutRequestBody) error
- func (c *Client) UpdateAlias(ctx context.Context, name string, d *AliasUpdateRequestBody) error
- func (c *Client) UpdateIPSet(ctx context.Context, d *IPSetUpdateRequestBody) error
- func (c *Client) UpdateRule(ctx context.Context, pos int, d *RuleUpdateRequestBody) error
- type IPSet
- type IPSetContent
- type IPSetCreateRequestBody
- type IPSetGetResponseBody
- type IPSetGetResponseData
- type IPSetListResponseBody
- type IPSetListResponseData
- type IPSetUpdateRequestBody
- type Options
- type OptionsGetResponseBody
- type OptionsGetResponseData
- type OptionsPutRequestBody
- type Rule
- type RuleCreateRequestBody
- type RuleGetResponseBody
- type RuleGetResponseData
- type RuleListResponseBody
- type RuleListResponseData
- type RuleUpdateRequestBody
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Alias ¶
type Alias interface {
CreateAlias(ctx context.Context, d *AliasCreateRequestBody) error
DeleteAlias(ctx context.Context, name string) error
GetAlias(ctx context.Context, name string) (*AliasGetResponseData, error)
ListAliases(ctx context.Context) ([]*AliasGetResponseData, error)
UpdateAlias(ctx context.Context, name string, d *AliasUpdateRequestBody) error
}
Alias is an interface for managing firewall aliases.
type AliasCreateRequestBody ¶
type AliasCreateRequestBody struct {
Comment *string `json:"comment,omitempty" url:"comment,omitempty"`
Name string `json:"name" url:"name"`
CIDR string `json:"cidr" url:"cidr"`
}
AliasCreateRequestBody contains the data for an alias create request.
type AliasGetResponseBody ¶
type AliasGetResponseBody struct {
Data *AliasGetResponseData `json:"data,omitempty"`
}
AliasGetResponseBody contains the body from an alias get response.
type AliasGetResponseData ¶
type AliasGetResponseData struct {
Comment *string `json:"comment,omitempty" url:"comment,omitempty"`
Name string `json:"name" url:"name"`
CIDR string `json:"cidr" url:"cidr"`
Digest *string `json:"digest" url:"digest"`
IPVersion int `json:"ipversion" url:"ipversion"`
}
AliasGetResponseData contains the data from an alias get response.
type AliasListResponseBody ¶
type AliasListResponseBody struct {
Data []*AliasGetResponseData `json:"data,omitempty"`
}
AliasListResponseBody contains the data from an alias get response.
type AliasUpdateRequestBody ¶
type AliasUpdateRequestBody struct {
Comment *string `json:"comment,omitempty" url:"comment,omitempty"`
ReName string `json:"rename" url:"rename"`
CIDR string `json:"cidr" url:"cidr"`
}
AliasUpdateRequestBody contains the data for an alias update request.
type BaseRule ¶
type BaseRule struct {
Comment *string `json:"comment,omitempty" url:"comment,omitempty"`
Dest *string `json:"dest,omitempty" url:"dest,omitempty"`
Digest *string `json:"digest,omitempty" url:"digest,omitempty"`
DPort *string `json:"dport,omitempty" url:"dport,omitempty"`
Enable *types.CustomBool `json:"enable,omitempty" url:"enable,omitempty,int"`
ICMPType *string `json:"icmp-type,omitempty" url:"icmp-type,omitempty"`
IFace *string `json:"iface,omitempty" url:"iface,omitempty"`
Log *string `json:"log,omitempty" url:"log,omitempty"`
Macro *string `json:"macro,omitempty" url:"macro,omitempty"`
Proto *string `json:"proto,omitempty" url:"proto,omitempty"`
Source *string `json:"source,omitempty" url:"source,omitempty"`
SPort *string `json:"sport,omitempty" url:"sport,omitempty"`
}
BaseRule is the base struct for firewall rules.
type Client ¶
Client is an interface for accessing the Proxmox firewall API.
func (*Client) AddCIDRToIPSet ¶
AddCIDRToIPSet adds IP or Network to IPSet.
func (*Client) CreateAlias ¶
func (c *Client) CreateAlias(ctx context.Context, d *AliasCreateRequestBody) error
CreateAlias create an alias.
func (*Client) CreateIPSet ¶
func (c *Client) CreateIPSet(ctx context.Context, d *IPSetCreateRequestBody) error
CreateIPSet create an IPSet.
func (*Client) CreateRule ¶
func (c *Client) CreateRule(ctx context.Context, d *RuleCreateRequestBody) error
CreateRule creates a firewall rule.
func (*Client) DeleteAlias ¶
DeleteAlias delete an alias.
func (*Client) DeleteIPSet ¶
DeleteIPSet delete an IPSet.
func (*Client) DeleteIPSetContent ¶
DeleteIPSetContent remove IP or Network from IPSet.
func (*Client) DeleteRule ¶
DeleteRule deletes a firewall rule.
func (*Client) GetIPSetContent ¶
GetIPSetContent retrieve a list of IPSet content.
func (*Client) GetOptions ¶
func (c *Client) GetOptions(ctx context.Context) (*OptionsGetResponseData, error)
GetOptions retrieves the options object.
func (*Client) GetOptionsID ¶
GetOptionsID returns the ID of the options object.
func (*Client) GetRulesID ¶
GetRulesID returns the ID of the rules object.
func (*Client) ListAliases ¶
func (c *Client) ListAliases(ctx context.Context) ([]*AliasGetResponseData, error)
ListAliases retrieves a list of aliases.
func (*Client) ListIPSets ¶
func (c *Client) ListIPSets(ctx context.Context) ([]*IPSetListResponseData, error)
ListIPSets retrieves list of IPSets.
func (*Client) ListRules ¶
func (c *Client) ListRules(ctx context.Context) ([]*RuleListResponseData, error)
ListRules retrieves a list of firewall rules.
func (*Client) SetOptions ¶
func (c *Client) SetOptions(ctx context.Context, d *OptionsPutRequestBody) error
SetOptions sets the options object.
func (*Client) UpdateAlias ¶
UpdateAlias updates an alias.
func (*Client) UpdateIPSet ¶
func (c *Client) UpdateIPSet(ctx context.Context, d *IPSetUpdateRequestBody) error
UpdateIPSet updates an IPSet.
func (*Client) UpdateRule ¶
UpdateRule updates a firewall rule.
type IPSet ¶
type IPSet interface {
CreateIPSet(ctx context.Context, d *IPSetCreateRequestBody) error
AddCIDRToIPSet(ctx context.Context, id string, d IPSetGetResponseData) error
UpdateIPSet(ctx context.Context, d *IPSetUpdateRequestBody) error
DeleteIPSet(ctx context.Context, id string) error
DeleteIPSetContent(ctx context.Context, id string, cidr string) error
GetIPSetContent(ctx context.Context, id string) ([]*IPSetGetResponseData, error)
ListIPSets(ctx context.Context) ([]*IPSetListResponseData, error)
}
IPSet is an interface for managing IP sets.
type IPSetContent ¶
type IPSetContent []IPSetGetResponseData
IPSetContent is an array of IPSetGetResponseData.
type IPSetCreateRequestBody ¶
type IPSetCreateRequestBody struct {
Comment string `json:"comment,omitempty" url:"comment,omitempty"`
Name string `json:"name" url:"name"`
}
IPSetCreateRequestBody contains the data for an IPSet create request.
type IPSetGetResponseBody ¶
type IPSetGetResponseBody struct {
Data []*IPSetGetResponseData `json:"data,omitempty"`
}
IPSetGetResponseBody contains the body from an IPSet get response.
type IPSetGetResponseData ¶
type IPSetGetResponseData struct {
CIDR string `json:"cidr" url:"cidr"`
NoMatch *types.CustomBool `json:"nomatch,omitempty" url:"nomatch,omitempty,int"`
Comment *string `json:"comment,omitempty" url:"comment,omitempty"`
}
IPSetGetResponseData contains the data from an IPSet get response.
type IPSetListResponseBody ¶
type IPSetListResponseBody struct {
Data []*IPSetListResponseData `json:"data,omitempty"`
}
IPSetListResponseBody contains the data from an IPSet get response.
type IPSetListResponseData ¶
type IPSetListResponseData struct {
Comment *string `json:"comment,omitempty" url:"comment,omitempty"`
Name string `json:"name" url:"name"`
}
IPSetListResponseData contains list of IPSets from.
type IPSetUpdateRequestBody ¶
type IPSetUpdateRequestBody struct {
ReName string `json:"rename,omitempty" url:"rename,omitempty"`
Comment *string `json:"comment,omitempty" url:"comment,omitempty"`
Name string `json:"name" url:"name"`
}
IPSetUpdateRequestBody contains the data for an IPSet update request.
type Options ¶
type Options interface {
GetOptionsID() string
SetOptions(ctx context.Context, d *OptionsPutRequestBody) error
GetOptions(ctx context.Context) (*OptionsGetResponseData, error)
}
Options is an interface for the Proxmox firewall options API.
type OptionsGetResponseBody ¶
type OptionsGetResponseBody struct {
Data *OptionsGetResponseData `json:"data,omitempty"`
}
OptionsGetResponseBody is the response body for the GET /cluster/firewall/options API call.
type OptionsGetResponseData ¶
type OptionsGetResponseData struct {
DHCP *types.CustomBool `json:"dhcp" url:"dhcp,int"`
Enable *types.CustomBool `json:"enable" url:"enable,int"`
IPFilter *types.CustomBool `json:"ipfilter" url:"ipfilter,int"`
LogLevelIN *string `json:"log_level_in" url:"log_level_in"`
LogLevelOUT *string `json:"log_level_out" url:"log_level_out"`
MACFilter *types.CustomBool `json:"macfilter" url:"macfilter,int"`
NDP *types.CustomBool `json:"ndp" url:"ndp,int"`
PolicyIn *string `json:"policy_in" url:"policy_in"`
PolicyOut *string `json:"policy_out" url:"policy_out"`
RAdv *types.CustomBool `json:"radv" url:"radv,int"`
}
OptionsGetResponseData is the data field of the response body for the GET /cluster/firewall/options API call.
type OptionsPutRequestBody ¶
type OptionsPutRequestBody struct {
DHCP *types.CustomBool `json:"dhcp,omitempty" url:"dhcp,omitempty,int"`
Enable *types.CustomBool `json:"enable,omitempty" url:"enable,omitempty,int"`
IPFilter *types.CustomBool `json:"ipfilter,omitempty" url:"ipfilter,omitempty,int"`
LogLevelIN *string `json:"log_level_in,omitempty" url:"log_level_in,omitempty"`
LogLevelOUT *string `json:"log_level_out,omitempty" url:"log_level_out,omitempty"`
MACFilter *types.CustomBool `json:"macfilter,omitempty" url:"macfilter,omitempty,int"`
NDP *types.CustomBool `json:"ndp,omitempty" url:"ndp,omitempty,int"`
PolicyIn *string `json:"policy_in,omitempty" url:"policy_in,omitempty"`
PolicyOut *string `json:"policy_out,omitempty" url:"policy_out,omitempty"`
RAdv *types.CustomBool `json:"radv,omitempty" url:"radv,omitempty,int"`
}
OptionsPutRequestBody is the request body for the PUT /cluster/firewall/options API call.
type Rule ¶
type Rule interface {
GetRulesID() string
CreateRule(ctx context.Context, d *RuleCreateRequestBody) error
GetRule(ctx context.Context, pos int) (*RuleGetResponseData, error)
ListRules(ctx context.Context) ([]*RuleListResponseData, error)
UpdateRule(ctx context.Context, pos int, d *RuleUpdateRequestBody) error
DeleteRule(ctx context.Context, pos int) error
}
Rule is an interface for the Proxmox firewall rule API.
type RuleCreateRequestBody ¶
type RuleCreateRequestBody struct {
BaseRule
Action string `json:"action" url:"action"`
Type string `json:"type" url:"type"`
Group *string `json:"group,omitempty" url:"group,omitempty"`
}
RuleCreateRequestBody contains the data for a firewall rule create request.
type RuleGetResponseBody ¶
type RuleGetResponseBody struct {
Data *RuleGetResponseData `json:"data,omitempty"`
}
RuleGetResponseBody contains the body from a firewall rule get response.
type RuleGetResponseData ¶
type RuleGetResponseData struct {
BaseRule
// NOTE: This is `int` in the PVE API docs, but it's actually a string in the response.
Pos string `json:"pos" url:"pos"`
Action string `json:"action" url:"action"`
Type string `json:"type" url:"type"`
}
RuleGetResponseData contains the data from a firewall rule get response.
type RuleListResponseBody ¶
type RuleListResponseBody struct {
Data []*RuleListResponseData `json:"data,omitempty"`
}
RuleListResponseBody contains the data from a firewall rule get response.
type RuleListResponseData ¶
type RuleListResponseData struct {
Pos int `json:"pos" url:"pos"`
}
RuleListResponseData contains the data from a firewall rule get response.
type RuleUpdateRequestBody ¶
type RuleUpdateRequestBody struct {
BaseRule
Pos *int `json:"pos,omitempty" url:"pos,omitempty"`
Action *string `json:"action,omitempty" url:"action,omitempty"`
Type *string `json:"type,omitempty" url:"type,omitempty"`
Group *string `json:"group,omitempty" url:"group,omitempty"`
}
RuleUpdateRequestBody contains the data for a firewall rule update request.