Documentation ¶
Index ¶
- type API
- type Client
- func (c *Client) CreateGroup(ctx context.Context, d *GroupCreateRequestBody) error
- func (c *Client) DeleteGroup(ctx context.Context, group string) error
- func (c *Client) GetGlobalOptions(ctx context.Context) (*OptionsGetResponseData, error)
- func (c *Client) ListGroups(ctx context.Context) ([]*GroupListResponseData, error)
- func (c *Client) SecurityGroup(group string) firewall.Rule
- func (c *Client) SetGlobalOptions(ctx context.Context, d *OptionsPutRequestBody) error
- func (c *Client) UpdateGroup(ctx context.Context, d *GroupUpdateRequestBody) error
- type CustomLogRateLimit
- type GroupCreateRequestBody
- type GroupListResponseBody
- type GroupListResponseData
- type GroupUpdateRequestBody
- type Options
- type OptionsGetResponseBody
- type OptionsGetResponseData
- type OptionsPutRequestBody
- type SecurityGroup
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
Client is an interface for accessing the Proxmox cluster firewall API.
func (*Client) CreateGroup ¶
func (c *Client) CreateGroup(ctx context.Context, d *GroupCreateRequestBody) error
CreateGroup create new security group.
func (*Client) DeleteGroup ¶
DeleteGroup delete security group.
func (*Client) GetGlobalOptions ¶
func (c *Client) GetGlobalOptions(ctx context.Context) (*OptionsGetResponseData, error)
GetGlobalOptions retrieves the global firewall options.
func (*Client) ListGroups ¶
func (c *Client) ListGroups(ctx context.Context) ([]*GroupListResponseData, error)
ListGroups retrieve list of security groups.
func (*Client) SecurityGroup ¶
SecurityGroup returns a client for managing a specific security group.
func (*Client) SetGlobalOptions ¶
func (c *Client) SetGlobalOptions(ctx context.Context, d *OptionsPutRequestBody) error
SetGlobalOptions sets the global firewall options.
func (*Client) UpdateGroup ¶
func (c *Client) UpdateGroup(ctx context.Context, d *GroupUpdateRequestBody) error
UpdateGroup update security group.
type CustomLogRateLimit ¶
type CustomLogRateLimit struct { Enable types.CustomBool `json:"enable,omitempty" url:"enable,omitempty,int"` Burst *int `json:"burst,omitempty" url:"burst,omitempty,int"` Rate *string `json:"rate,omitempty" url:"rate,omitempty"` }
CustomLogRateLimit is a custom type for the log_ratelimit field of the firewall optionss.
func (*CustomLogRateLimit) EncodeValues ¶
func (r *CustomLogRateLimit) EncodeValues(key string, v *url.Values) error
EncodeValues converts a CustomWatchdogDevice struct to a URL vlaue.
func (*CustomLogRateLimit) UnmarshalJSON ¶
func (r *CustomLogRateLimit) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals a CustomLogRateLimit struct from JSON.
type GroupCreateRequestBody ¶
type GroupCreateRequestBody struct { Group string `json:"group" url:"group"` Comment *string `json:"comment,omitempty" url:"comment,omitempty"` Digest *string `json:"digest,omitempty" url:"digest,omitempty"` }
GroupCreateRequestBody contains the data for a security group create request.
type GroupListResponseBody ¶
type GroupListResponseBody struct {
Data []*GroupListResponseData `json:"data,omitempty"`
}
GroupListResponseBody contains the data from a group get response.
type GroupListResponseData ¶
type GroupListResponseData struct { Comment *string `json:"comment,omitempty" url:"comment,omitempty"` Group string `json:"group" url:"group"` Digest string `json:"digest" url:"digest"` }
GroupListResponseData contains the data from a group list response.
type GroupUpdateRequestBody ¶
type GroupUpdateRequestBody struct { Group string `json:"group" url:"group"` Comment *string `json:"comment,omitempty" url:"comment,omitempty"` ReName *string `json:"rename,omitempty" url:"rename,omitempty"` Digest *string `json:"digest,omitempty" url:"digest,omitempty"` }
GroupUpdateRequestBody contains the data for a group update request.
type Options ¶
type Options interface { SetGlobalOptions(ctx context.Context, d *OptionsPutRequestBody) error GetGlobalOptions(ctx context.Context) (*OptionsGetResponseData, error) }
Options is an interface for managing global firewall options.
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 { EBTables *types.CustomBool `json:"ebtables" url:"ebtables, int"` Enable *types.CustomBool `json:"enable" url:"enable,int"` LogRateLimit *CustomLogRateLimit `json:"log_ratelimit" url:"log_ratelimit"` PolicyIn *string `json:"policy_in" url:"policy_in"` PolicyOut *string `json:"policy_out" url:"policy_out"` }
OptionsGetResponseData is the data field of the response body for the GET /cluster/firewall/options API call.
type OptionsPutRequestBody ¶
type OptionsPutRequestBody struct { EBTables *types.CustomBool `json:"ebtables,omitempty" url:"ebtables,omitempty,int"` Enable *types.CustomBool `json:"enable,omitempty" url:"enable,omitempty,int"` LogRateLimit *CustomLogRateLimit `json:"log_ratelimit,omitempty" url:"log_ratelimit,omitempty"` PolicyIn *string `json:"policy_in,omitempty" url:"policy_in,omitempty"` PolicyOut *string `json:"policy_out,omitempty" url:"policy_out,omitempty"` }
OptionsPutRequestBody is the request body for the PUT /cluster/firewall/options API call.
type SecurityGroup ¶
type SecurityGroup interface { CreateGroup(ctx context.Context, d *GroupCreateRequestBody) error ListGroups(ctx context.Context) ([]*GroupListResponseData, error) UpdateGroup(ctx context.Context, d *GroupUpdateRequestBody) error DeleteGroup(ctx context.Context, group string) error }
SecurityGroup is an interface for the Proxmox security group API.