network

package
v5.25.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Firewall

type Firewall struct {
	pulumi.CustomResourceState

	// Enable ebtables rules cluster wide.
	Ebtables pulumi.BoolPtrOutput `pulumi:"ebtables"`
	// Enable or disable the log rate limit.
	Enabled pulumi.BoolPtrOutput `pulumi:"enabled"`
	// The default input policy (`ACCEPT`, `DROP`, `REJECT`).
	InputPolicy pulumi.StringPtrOutput `pulumi:"inputPolicy"`
	// The log rate limit.
	LogRatelimit FirewallLogRatelimitPtrOutput `pulumi:"logRatelimit"`
	// The default output policy (`ACCEPT`, `DROP`, `REJECT`).
	OutputPolicy pulumi.StringPtrOutput `pulumi:"outputPolicy"`
}

Manages firewall options on the cluster level.

## Example Usage

```go package main

import (

"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Network"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := Network.NewFirewall(ctx, "example", &Network.FirewallArgs{
			Ebtables:    pulumi.Bool(false),
			Enabled:     pulumi.Bool(false),
			InputPolicy: pulumi.String("DROP"),
			LogRatelimit: &network.FirewallLogRatelimitArgs{
				Burst:   pulumi.Int(10),
				Enabled: pulumi.Bool(false),
				Rate:    pulumi.String("5/second"),
			},
			OutputPolicy: pulumi.String("ACCEPT"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## Important Notes

Be careful not to use this resource multiple times for the same node.

## Import

Instances can be imported without an ID, but you still need to pass one, e.g.,

bash

```sh $ pulumi import proxmoxve:Network/firewall:Firewall example example ```

func GetFirewall

func GetFirewall(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FirewallState, opts ...pulumi.ResourceOption) (*Firewall, error)

GetFirewall gets an existing Firewall resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFirewall

func NewFirewall(ctx *pulumi.Context,
	name string, args *FirewallArgs, opts ...pulumi.ResourceOption) (*Firewall, error)

NewFirewall registers a new resource with the given unique name, arguments, and options.

func (*Firewall) ElementType

func (*Firewall) ElementType() reflect.Type

func (*Firewall) ToFirewallOutput

func (i *Firewall) ToFirewallOutput() FirewallOutput

func (*Firewall) ToFirewallOutputWithContext

func (i *Firewall) ToFirewallOutputWithContext(ctx context.Context) FirewallOutput

type FirewallAlias

type FirewallAlias struct {
	pulumi.CustomResourceState

	// Network/IP specification in CIDR format.
	Cidr pulumi.StringOutput `pulumi:"cidr"`
	// Alias comment.
	Comment pulumi.StringPtrOutput `pulumi:"comment"`
	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrOutput `pulumi:"containerId"`
	// Alias name.
	Name pulumi.StringOutput `pulumi:"name"`
	// Node name. Leave empty for cluster level aliases.
	NodeName pulumi.StringPtrOutput `pulumi:"nodeName"`
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrOutput `pulumi:"vmId"`
}

Aliases are used to see what devices or group of devices are affected by a rule. We can create aliases to identify an IP address or a network. Aliases can be created on the cluster level, on VM / Container level.

## Example Usage

```go package main

import (

"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Network"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := Network.NewFirewallAlias(ctx, "localNetwork", &Network.FirewallAliasArgs{
			NodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),
			VmId:     pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),
			Cidr:     pulumi.String("192.168.0.0/23"),
			Comment:  pulumi.String("Managed by Terraform"),
		}, pulumi.DependsOn([]pulumi.Resource{
			proxmox_virtual_environment_vm.Example,
		}))
		if err != nil {
			return err
		}
		_, err = Network.NewFirewallAlias(ctx, "ubuntuVm", &Network.FirewallAliasArgs{
			Cidr:    pulumi.String("192.168.0.1"),
			Comment: pulumi.String("Managed by Terraform"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetFirewallAlias

func GetFirewallAlias(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FirewallAliasState, opts ...pulumi.ResourceOption) (*FirewallAlias, error)

GetFirewallAlias gets an existing FirewallAlias resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFirewallAlias

func NewFirewallAlias(ctx *pulumi.Context,
	name string, args *FirewallAliasArgs, opts ...pulumi.ResourceOption) (*FirewallAlias, error)

NewFirewallAlias registers a new resource with the given unique name, arguments, and options.

func (*FirewallAlias) ElementType

func (*FirewallAlias) ElementType() reflect.Type

func (*FirewallAlias) ToFirewallAliasOutput

func (i *FirewallAlias) ToFirewallAliasOutput() FirewallAliasOutput

func (*FirewallAlias) ToFirewallAliasOutputWithContext

func (i *FirewallAlias) ToFirewallAliasOutputWithContext(ctx context.Context) FirewallAliasOutput

type FirewallAliasArgs

type FirewallAliasArgs struct {
	// Network/IP specification in CIDR format.
	Cidr pulumi.StringInput
	// Alias comment.
	Comment pulumi.StringPtrInput
	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrInput
	// Alias name.
	Name pulumi.StringPtrInput
	// Node name. Leave empty for cluster level aliases.
	NodeName pulumi.StringPtrInput
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrInput
}

The set of arguments for constructing a FirewallAlias resource.

func (FirewallAliasArgs) ElementType

func (FirewallAliasArgs) ElementType() reflect.Type

type FirewallAliasArray

type FirewallAliasArray []FirewallAliasInput

func (FirewallAliasArray) ElementType

func (FirewallAliasArray) ElementType() reflect.Type

func (FirewallAliasArray) ToFirewallAliasArrayOutput

func (i FirewallAliasArray) ToFirewallAliasArrayOutput() FirewallAliasArrayOutput

func (FirewallAliasArray) ToFirewallAliasArrayOutputWithContext

func (i FirewallAliasArray) ToFirewallAliasArrayOutputWithContext(ctx context.Context) FirewallAliasArrayOutput

type FirewallAliasArrayInput

type FirewallAliasArrayInput interface {
	pulumi.Input

	ToFirewallAliasArrayOutput() FirewallAliasArrayOutput
	ToFirewallAliasArrayOutputWithContext(context.Context) FirewallAliasArrayOutput
}

FirewallAliasArrayInput is an input type that accepts FirewallAliasArray and FirewallAliasArrayOutput values. You can construct a concrete instance of `FirewallAliasArrayInput` via:

FirewallAliasArray{ FirewallAliasArgs{...} }

type FirewallAliasArrayOutput

type FirewallAliasArrayOutput struct{ *pulumi.OutputState }

func (FirewallAliasArrayOutput) ElementType

func (FirewallAliasArrayOutput) ElementType() reflect.Type

func (FirewallAliasArrayOutput) Index

func (FirewallAliasArrayOutput) ToFirewallAliasArrayOutput

func (o FirewallAliasArrayOutput) ToFirewallAliasArrayOutput() FirewallAliasArrayOutput

func (FirewallAliasArrayOutput) ToFirewallAliasArrayOutputWithContext

func (o FirewallAliasArrayOutput) ToFirewallAliasArrayOutputWithContext(ctx context.Context) FirewallAliasArrayOutput

type FirewallAliasInput

type FirewallAliasInput interface {
	pulumi.Input

	ToFirewallAliasOutput() FirewallAliasOutput
	ToFirewallAliasOutputWithContext(ctx context.Context) FirewallAliasOutput
}

type FirewallAliasMap

type FirewallAliasMap map[string]FirewallAliasInput

func (FirewallAliasMap) ElementType

func (FirewallAliasMap) ElementType() reflect.Type

func (FirewallAliasMap) ToFirewallAliasMapOutput

func (i FirewallAliasMap) ToFirewallAliasMapOutput() FirewallAliasMapOutput

func (FirewallAliasMap) ToFirewallAliasMapOutputWithContext

func (i FirewallAliasMap) ToFirewallAliasMapOutputWithContext(ctx context.Context) FirewallAliasMapOutput

type FirewallAliasMapInput

type FirewallAliasMapInput interface {
	pulumi.Input

	ToFirewallAliasMapOutput() FirewallAliasMapOutput
	ToFirewallAliasMapOutputWithContext(context.Context) FirewallAliasMapOutput
}

FirewallAliasMapInput is an input type that accepts FirewallAliasMap and FirewallAliasMapOutput values. You can construct a concrete instance of `FirewallAliasMapInput` via:

FirewallAliasMap{ "key": FirewallAliasArgs{...} }

type FirewallAliasMapOutput

type FirewallAliasMapOutput struct{ *pulumi.OutputState }

func (FirewallAliasMapOutput) ElementType

func (FirewallAliasMapOutput) ElementType() reflect.Type

func (FirewallAliasMapOutput) MapIndex

func (FirewallAliasMapOutput) ToFirewallAliasMapOutput

func (o FirewallAliasMapOutput) ToFirewallAliasMapOutput() FirewallAliasMapOutput

func (FirewallAliasMapOutput) ToFirewallAliasMapOutputWithContext

func (o FirewallAliasMapOutput) ToFirewallAliasMapOutputWithContext(ctx context.Context) FirewallAliasMapOutput

type FirewallAliasOutput

type FirewallAliasOutput struct{ *pulumi.OutputState }

func (FirewallAliasOutput) Cidr

Network/IP specification in CIDR format.

func (FirewallAliasOutput) Comment

Alias comment.

func (FirewallAliasOutput) ContainerId

func (o FirewallAliasOutput) ContainerId() pulumi.IntPtrOutput

Container ID. Leave empty for cluster level aliases.

func (FirewallAliasOutput) ElementType

func (FirewallAliasOutput) ElementType() reflect.Type

func (FirewallAliasOutput) Name

Alias name.

func (FirewallAliasOutput) NodeName

Node name. Leave empty for cluster level aliases.

func (FirewallAliasOutput) ToFirewallAliasOutput

func (o FirewallAliasOutput) ToFirewallAliasOutput() FirewallAliasOutput

func (FirewallAliasOutput) ToFirewallAliasOutputWithContext

func (o FirewallAliasOutput) ToFirewallAliasOutputWithContext(ctx context.Context) FirewallAliasOutput

func (FirewallAliasOutput) VmId

VM ID. Leave empty for cluster level aliases.

type FirewallAliasState

type FirewallAliasState struct {
	// Network/IP specification in CIDR format.
	Cidr pulumi.StringPtrInput
	// Alias comment.
	Comment pulumi.StringPtrInput
	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrInput
	// Alias name.
	Name pulumi.StringPtrInput
	// Node name. Leave empty for cluster level aliases.
	NodeName pulumi.StringPtrInput
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrInput
}

func (FirewallAliasState) ElementType

func (FirewallAliasState) ElementType() reflect.Type

type FirewallArgs

type FirewallArgs struct {
	// Enable ebtables rules cluster wide.
	Ebtables pulumi.BoolPtrInput
	// Enable or disable the log rate limit.
	Enabled pulumi.BoolPtrInput
	// The default input policy (`ACCEPT`, `DROP`, `REJECT`).
	InputPolicy pulumi.StringPtrInput
	// The log rate limit.
	LogRatelimit FirewallLogRatelimitPtrInput
	// The default output policy (`ACCEPT`, `DROP`, `REJECT`).
	OutputPolicy pulumi.StringPtrInput
}

The set of arguments for constructing a Firewall resource.

func (FirewallArgs) ElementType

func (FirewallArgs) ElementType() reflect.Type

type FirewallArray

type FirewallArray []FirewallInput

func (FirewallArray) ElementType

func (FirewallArray) ElementType() reflect.Type

func (FirewallArray) ToFirewallArrayOutput

func (i FirewallArray) ToFirewallArrayOutput() FirewallArrayOutput

func (FirewallArray) ToFirewallArrayOutputWithContext

func (i FirewallArray) ToFirewallArrayOutputWithContext(ctx context.Context) FirewallArrayOutput

type FirewallArrayInput

type FirewallArrayInput interface {
	pulumi.Input

	ToFirewallArrayOutput() FirewallArrayOutput
	ToFirewallArrayOutputWithContext(context.Context) FirewallArrayOutput
}

FirewallArrayInput is an input type that accepts FirewallArray and FirewallArrayOutput values. You can construct a concrete instance of `FirewallArrayInput` via:

FirewallArray{ FirewallArgs{...} }

type FirewallArrayOutput

type FirewallArrayOutput struct{ *pulumi.OutputState }

func (FirewallArrayOutput) ElementType

func (FirewallArrayOutput) ElementType() reflect.Type

func (FirewallArrayOutput) Index

func (FirewallArrayOutput) ToFirewallArrayOutput

func (o FirewallArrayOutput) ToFirewallArrayOutput() FirewallArrayOutput

func (FirewallArrayOutput) ToFirewallArrayOutputWithContext

func (o FirewallArrayOutput) ToFirewallArrayOutputWithContext(ctx context.Context) FirewallArrayOutput

type FirewallIPSet

type FirewallIPSet struct {
	pulumi.CustomResourceState

	// IP/CIDR block (multiple blocks supported).
	Cidrs FirewallIPSetCidrArrayOutput `pulumi:"cidrs"`
	// Arbitrary string annotation.
	Comment pulumi.StringPtrOutput `pulumi:"comment"`
	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrOutput `pulumi:"containerId"`
	// Network/IP specification in CIDR format.
	Name pulumi.StringOutput `pulumi:"name"`
	// Node name. Leave empty for cluster level aliases.
	NodeName pulumi.StringPtrOutput `pulumi:"nodeName"`
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrOutput `pulumi:"vmId"`
}

An IPSet allows us to group multiple IP addresses, IP subnets and aliases. Aliases can be created on the cluster level, on VM / Container level.

## Example Usage

```go package main

import (

"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Network"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := Network.NewFirewallIPSet(ctx, "ipset", &Network.FirewallIPSetArgs{
			NodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),
			VmId:     pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),
			Comment:  pulumi.String("Managed by Terraform"),
			Cidrs: network.FirewallIPSetCidrArray{
				&network.FirewallIPSetCidrArgs{
					Name:    pulumi.String("192.168.0.0/23"),
					Comment: pulumi.String("Local network 1"),
				},
				&network.FirewallIPSetCidrArgs{
					Name:    pulumi.String("192.168.0.1"),
					Comment: pulumi.String("Server 1"),
					Nomatch: pulumi.Bool(true),
				},
				&network.FirewallIPSetCidrArgs{
					Name:    pulumi.String("192.168.2.1"),
					Comment: pulumi.String("Server 1"),
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			proxmox_virtual_environment_vm.Example,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetFirewallIPSet

func GetFirewallIPSet(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FirewallIPSetState, opts ...pulumi.ResourceOption) (*FirewallIPSet, error)

GetFirewallIPSet gets an existing FirewallIPSet resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFirewallIPSet

func NewFirewallIPSet(ctx *pulumi.Context,
	name string, args *FirewallIPSetArgs, opts ...pulumi.ResourceOption) (*FirewallIPSet, error)

NewFirewallIPSet registers a new resource with the given unique name, arguments, and options.

func (*FirewallIPSet) ElementType

func (*FirewallIPSet) ElementType() reflect.Type

func (*FirewallIPSet) ToFirewallIPSetOutput

func (i *FirewallIPSet) ToFirewallIPSetOutput() FirewallIPSetOutput

func (*FirewallIPSet) ToFirewallIPSetOutputWithContext

func (i *FirewallIPSet) ToFirewallIPSetOutputWithContext(ctx context.Context) FirewallIPSetOutput

type FirewallIPSetArgs

type FirewallIPSetArgs struct {
	// IP/CIDR block (multiple blocks supported).
	Cidrs FirewallIPSetCidrArrayInput
	// Arbitrary string annotation.
	Comment pulumi.StringPtrInput
	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrInput
	// Network/IP specification in CIDR format.
	Name pulumi.StringPtrInput
	// Node name. Leave empty for cluster level aliases.
	NodeName pulumi.StringPtrInput
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrInput
}

The set of arguments for constructing a FirewallIPSet resource.

func (FirewallIPSetArgs) ElementType

func (FirewallIPSetArgs) ElementType() reflect.Type

type FirewallIPSetArray

type FirewallIPSetArray []FirewallIPSetInput

func (FirewallIPSetArray) ElementType

func (FirewallIPSetArray) ElementType() reflect.Type

func (FirewallIPSetArray) ToFirewallIPSetArrayOutput

func (i FirewallIPSetArray) ToFirewallIPSetArrayOutput() FirewallIPSetArrayOutput

func (FirewallIPSetArray) ToFirewallIPSetArrayOutputWithContext

func (i FirewallIPSetArray) ToFirewallIPSetArrayOutputWithContext(ctx context.Context) FirewallIPSetArrayOutput

type FirewallIPSetArrayInput

type FirewallIPSetArrayInput interface {
	pulumi.Input

	ToFirewallIPSetArrayOutput() FirewallIPSetArrayOutput
	ToFirewallIPSetArrayOutputWithContext(context.Context) FirewallIPSetArrayOutput
}

FirewallIPSetArrayInput is an input type that accepts FirewallIPSetArray and FirewallIPSetArrayOutput values. You can construct a concrete instance of `FirewallIPSetArrayInput` via:

FirewallIPSetArray{ FirewallIPSetArgs{...} }

type FirewallIPSetArrayOutput

type FirewallIPSetArrayOutput struct{ *pulumi.OutputState }

func (FirewallIPSetArrayOutput) ElementType

func (FirewallIPSetArrayOutput) ElementType() reflect.Type

func (FirewallIPSetArrayOutput) Index

func (FirewallIPSetArrayOutput) ToFirewallIPSetArrayOutput

func (o FirewallIPSetArrayOutput) ToFirewallIPSetArrayOutput() FirewallIPSetArrayOutput

func (FirewallIPSetArrayOutput) ToFirewallIPSetArrayOutputWithContext

func (o FirewallIPSetArrayOutput) ToFirewallIPSetArrayOutputWithContext(ctx context.Context) FirewallIPSetArrayOutput

type FirewallIPSetCidr

type FirewallIPSetCidr struct {
	// Arbitrary string annotation.
	Comment *string `pulumi:"comment"`
	// Network/IP specification in CIDR format.
	Name string `pulumi:"name"`
	// Entries marked as `nomatch` are skipped as if those
	// were not added to the set.
	Nomatch *bool `pulumi:"nomatch"`
}

type FirewallIPSetCidrArgs

type FirewallIPSetCidrArgs struct {
	// Arbitrary string annotation.
	Comment pulumi.StringPtrInput `pulumi:"comment"`
	// Network/IP specification in CIDR format.
	Name pulumi.StringInput `pulumi:"name"`
	// Entries marked as `nomatch` are skipped as if those
	// were not added to the set.
	Nomatch pulumi.BoolPtrInput `pulumi:"nomatch"`
}

func (FirewallIPSetCidrArgs) ElementType

func (FirewallIPSetCidrArgs) ElementType() reflect.Type

func (FirewallIPSetCidrArgs) ToFirewallIPSetCidrOutput

func (i FirewallIPSetCidrArgs) ToFirewallIPSetCidrOutput() FirewallIPSetCidrOutput

func (FirewallIPSetCidrArgs) ToFirewallIPSetCidrOutputWithContext

func (i FirewallIPSetCidrArgs) ToFirewallIPSetCidrOutputWithContext(ctx context.Context) FirewallIPSetCidrOutput

type FirewallIPSetCidrArray

type FirewallIPSetCidrArray []FirewallIPSetCidrInput

func (FirewallIPSetCidrArray) ElementType

func (FirewallIPSetCidrArray) ElementType() reflect.Type

func (FirewallIPSetCidrArray) ToFirewallIPSetCidrArrayOutput

func (i FirewallIPSetCidrArray) ToFirewallIPSetCidrArrayOutput() FirewallIPSetCidrArrayOutput

func (FirewallIPSetCidrArray) ToFirewallIPSetCidrArrayOutputWithContext

func (i FirewallIPSetCidrArray) ToFirewallIPSetCidrArrayOutputWithContext(ctx context.Context) FirewallIPSetCidrArrayOutput

type FirewallIPSetCidrArrayInput

type FirewallIPSetCidrArrayInput interface {
	pulumi.Input

	ToFirewallIPSetCidrArrayOutput() FirewallIPSetCidrArrayOutput
	ToFirewallIPSetCidrArrayOutputWithContext(context.Context) FirewallIPSetCidrArrayOutput
}

FirewallIPSetCidrArrayInput is an input type that accepts FirewallIPSetCidrArray and FirewallIPSetCidrArrayOutput values. You can construct a concrete instance of `FirewallIPSetCidrArrayInput` via:

FirewallIPSetCidrArray{ FirewallIPSetCidrArgs{...} }

type FirewallIPSetCidrArrayOutput

type FirewallIPSetCidrArrayOutput struct{ *pulumi.OutputState }

func (FirewallIPSetCidrArrayOutput) ElementType

func (FirewallIPSetCidrArrayOutput) Index

func (FirewallIPSetCidrArrayOutput) ToFirewallIPSetCidrArrayOutput

func (o FirewallIPSetCidrArrayOutput) ToFirewallIPSetCidrArrayOutput() FirewallIPSetCidrArrayOutput

func (FirewallIPSetCidrArrayOutput) ToFirewallIPSetCidrArrayOutputWithContext

func (o FirewallIPSetCidrArrayOutput) ToFirewallIPSetCidrArrayOutputWithContext(ctx context.Context) FirewallIPSetCidrArrayOutput

type FirewallIPSetCidrInput

type FirewallIPSetCidrInput interface {
	pulumi.Input

	ToFirewallIPSetCidrOutput() FirewallIPSetCidrOutput
	ToFirewallIPSetCidrOutputWithContext(context.Context) FirewallIPSetCidrOutput
}

FirewallIPSetCidrInput is an input type that accepts FirewallIPSetCidrArgs and FirewallIPSetCidrOutput values. You can construct a concrete instance of `FirewallIPSetCidrInput` via:

FirewallIPSetCidrArgs{...}

type FirewallIPSetCidrOutput

type FirewallIPSetCidrOutput struct{ *pulumi.OutputState }

func (FirewallIPSetCidrOutput) Comment

Arbitrary string annotation.

func (FirewallIPSetCidrOutput) ElementType

func (FirewallIPSetCidrOutput) ElementType() reflect.Type

func (FirewallIPSetCidrOutput) Name

Network/IP specification in CIDR format.

func (FirewallIPSetCidrOutput) Nomatch

Entries marked as `nomatch` are skipped as if those were not added to the set.

func (FirewallIPSetCidrOutput) ToFirewallIPSetCidrOutput

func (o FirewallIPSetCidrOutput) ToFirewallIPSetCidrOutput() FirewallIPSetCidrOutput

func (FirewallIPSetCidrOutput) ToFirewallIPSetCidrOutputWithContext

func (o FirewallIPSetCidrOutput) ToFirewallIPSetCidrOutputWithContext(ctx context.Context) FirewallIPSetCidrOutput

type FirewallIPSetInput

type FirewallIPSetInput interface {
	pulumi.Input

	ToFirewallIPSetOutput() FirewallIPSetOutput
	ToFirewallIPSetOutputWithContext(ctx context.Context) FirewallIPSetOutput
}

type FirewallIPSetMap

type FirewallIPSetMap map[string]FirewallIPSetInput

func (FirewallIPSetMap) ElementType

func (FirewallIPSetMap) ElementType() reflect.Type

func (FirewallIPSetMap) ToFirewallIPSetMapOutput

func (i FirewallIPSetMap) ToFirewallIPSetMapOutput() FirewallIPSetMapOutput

func (FirewallIPSetMap) ToFirewallIPSetMapOutputWithContext

func (i FirewallIPSetMap) ToFirewallIPSetMapOutputWithContext(ctx context.Context) FirewallIPSetMapOutput

type FirewallIPSetMapInput

type FirewallIPSetMapInput interface {
	pulumi.Input

	ToFirewallIPSetMapOutput() FirewallIPSetMapOutput
	ToFirewallIPSetMapOutputWithContext(context.Context) FirewallIPSetMapOutput
}

FirewallIPSetMapInput is an input type that accepts FirewallIPSetMap and FirewallIPSetMapOutput values. You can construct a concrete instance of `FirewallIPSetMapInput` via:

FirewallIPSetMap{ "key": FirewallIPSetArgs{...} }

type FirewallIPSetMapOutput

type FirewallIPSetMapOutput struct{ *pulumi.OutputState }

func (FirewallIPSetMapOutput) ElementType

func (FirewallIPSetMapOutput) ElementType() reflect.Type

func (FirewallIPSetMapOutput) MapIndex

func (FirewallIPSetMapOutput) ToFirewallIPSetMapOutput

func (o FirewallIPSetMapOutput) ToFirewallIPSetMapOutput() FirewallIPSetMapOutput

func (FirewallIPSetMapOutput) ToFirewallIPSetMapOutputWithContext

func (o FirewallIPSetMapOutput) ToFirewallIPSetMapOutputWithContext(ctx context.Context) FirewallIPSetMapOutput

type FirewallIPSetOutput

type FirewallIPSetOutput struct{ *pulumi.OutputState }

func (FirewallIPSetOutput) Cidrs

IP/CIDR block (multiple blocks supported).

func (FirewallIPSetOutput) Comment

Arbitrary string annotation.

func (FirewallIPSetOutput) ContainerId

func (o FirewallIPSetOutput) ContainerId() pulumi.IntPtrOutput

Container ID. Leave empty for cluster level aliases.

func (FirewallIPSetOutput) ElementType

func (FirewallIPSetOutput) ElementType() reflect.Type

func (FirewallIPSetOutput) Name

Network/IP specification in CIDR format.

func (FirewallIPSetOutput) NodeName

Node name. Leave empty for cluster level aliases.

func (FirewallIPSetOutput) ToFirewallIPSetOutput

func (o FirewallIPSetOutput) ToFirewallIPSetOutput() FirewallIPSetOutput

func (FirewallIPSetOutput) ToFirewallIPSetOutputWithContext

func (o FirewallIPSetOutput) ToFirewallIPSetOutputWithContext(ctx context.Context) FirewallIPSetOutput

func (FirewallIPSetOutput) VmId

VM ID. Leave empty for cluster level aliases.

type FirewallIPSetState

type FirewallIPSetState struct {
	// IP/CIDR block (multiple blocks supported).
	Cidrs FirewallIPSetCidrArrayInput
	// Arbitrary string annotation.
	Comment pulumi.StringPtrInput
	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrInput
	// Network/IP specification in CIDR format.
	Name pulumi.StringPtrInput
	// Node name. Leave empty for cluster level aliases.
	NodeName pulumi.StringPtrInput
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrInput
}

func (FirewallIPSetState) ElementType

func (FirewallIPSetState) ElementType() reflect.Type

type FirewallInput

type FirewallInput interface {
	pulumi.Input

	ToFirewallOutput() FirewallOutput
	ToFirewallOutputWithContext(ctx context.Context) FirewallOutput
}

type FirewallLogRatelimit

type FirewallLogRatelimit struct {
	// Initial burst of packages which will always get
	// logged before the rate is applied (defaults to `5`).
	Burst *int `pulumi:"burst"`
	// Enable or disable the log rate limit.
	Enabled *bool `pulumi:"enabled"`
	// Frequency with which the burst bucket gets refilled
	// (defaults to `1/second`).
	Rate *string `pulumi:"rate"`
}

type FirewallLogRatelimitArgs

type FirewallLogRatelimitArgs struct {
	// Initial burst of packages which will always get
	// logged before the rate is applied (defaults to `5`).
	Burst pulumi.IntPtrInput `pulumi:"burst"`
	// Enable or disable the log rate limit.
	Enabled pulumi.BoolPtrInput `pulumi:"enabled"`
	// Frequency with which the burst bucket gets refilled
	// (defaults to `1/second`).
	Rate pulumi.StringPtrInput `pulumi:"rate"`
}

func (FirewallLogRatelimitArgs) ElementType

func (FirewallLogRatelimitArgs) ElementType() reflect.Type

func (FirewallLogRatelimitArgs) ToFirewallLogRatelimitOutput

func (i FirewallLogRatelimitArgs) ToFirewallLogRatelimitOutput() FirewallLogRatelimitOutput

func (FirewallLogRatelimitArgs) ToFirewallLogRatelimitOutputWithContext

func (i FirewallLogRatelimitArgs) ToFirewallLogRatelimitOutputWithContext(ctx context.Context) FirewallLogRatelimitOutput

func (FirewallLogRatelimitArgs) ToFirewallLogRatelimitPtrOutput

func (i FirewallLogRatelimitArgs) ToFirewallLogRatelimitPtrOutput() FirewallLogRatelimitPtrOutput

func (FirewallLogRatelimitArgs) ToFirewallLogRatelimitPtrOutputWithContext

func (i FirewallLogRatelimitArgs) ToFirewallLogRatelimitPtrOutputWithContext(ctx context.Context) FirewallLogRatelimitPtrOutput

type FirewallLogRatelimitInput

type FirewallLogRatelimitInput interface {
	pulumi.Input

	ToFirewallLogRatelimitOutput() FirewallLogRatelimitOutput
	ToFirewallLogRatelimitOutputWithContext(context.Context) FirewallLogRatelimitOutput
}

FirewallLogRatelimitInput is an input type that accepts FirewallLogRatelimitArgs and FirewallLogRatelimitOutput values. You can construct a concrete instance of `FirewallLogRatelimitInput` via:

FirewallLogRatelimitArgs{...}

type FirewallLogRatelimitOutput

type FirewallLogRatelimitOutput struct{ *pulumi.OutputState }

func (FirewallLogRatelimitOutput) Burst

Initial burst of packages which will always get logged before the rate is applied (defaults to `5`).

func (FirewallLogRatelimitOutput) ElementType

func (FirewallLogRatelimitOutput) ElementType() reflect.Type

func (FirewallLogRatelimitOutput) Enabled

Enable or disable the log rate limit.

func (FirewallLogRatelimitOutput) Rate

Frequency with which the burst bucket gets refilled (defaults to `1/second`).

func (FirewallLogRatelimitOutput) ToFirewallLogRatelimitOutput

func (o FirewallLogRatelimitOutput) ToFirewallLogRatelimitOutput() FirewallLogRatelimitOutput

func (FirewallLogRatelimitOutput) ToFirewallLogRatelimitOutputWithContext

func (o FirewallLogRatelimitOutput) ToFirewallLogRatelimitOutputWithContext(ctx context.Context) FirewallLogRatelimitOutput

func (FirewallLogRatelimitOutput) ToFirewallLogRatelimitPtrOutput

func (o FirewallLogRatelimitOutput) ToFirewallLogRatelimitPtrOutput() FirewallLogRatelimitPtrOutput

func (FirewallLogRatelimitOutput) ToFirewallLogRatelimitPtrOutputWithContext

func (o FirewallLogRatelimitOutput) ToFirewallLogRatelimitPtrOutputWithContext(ctx context.Context) FirewallLogRatelimitPtrOutput

type FirewallLogRatelimitPtrInput

type FirewallLogRatelimitPtrInput interface {
	pulumi.Input

	ToFirewallLogRatelimitPtrOutput() FirewallLogRatelimitPtrOutput
	ToFirewallLogRatelimitPtrOutputWithContext(context.Context) FirewallLogRatelimitPtrOutput
}

FirewallLogRatelimitPtrInput is an input type that accepts FirewallLogRatelimitArgs, FirewallLogRatelimitPtr and FirewallLogRatelimitPtrOutput values. You can construct a concrete instance of `FirewallLogRatelimitPtrInput` via:

        FirewallLogRatelimitArgs{...}

or:

        nil

type FirewallLogRatelimitPtrOutput

type FirewallLogRatelimitPtrOutput struct{ *pulumi.OutputState }

func (FirewallLogRatelimitPtrOutput) Burst

Initial burst of packages which will always get logged before the rate is applied (defaults to `5`).

func (FirewallLogRatelimitPtrOutput) Elem

func (FirewallLogRatelimitPtrOutput) ElementType

func (FirewallLogRatelimitPtrOutput) Enabled

Enable or disable the log rate limit.

func (FirewallLogRatelimitPtrOutput) Rate

Frequency with which the burst bucket gets refilled (defaults to `1/second`).

func (FirewallLogRatelimitPtrOutput) ToFirewallLogRatelimitPtrOutput

func (o FirewallLogRatelimitPtrOutput) ToFirewallLogRatelimitPtrOutput() FirewallLogRatelimitPtrOutput

func (FirewallLogRatelimitPtrOutput) ToFirewallLogRatelimitPtrOutputWithContext

func (o FirewallLogRatelimitPtrOutput) ToFirewallLogRatelimitPtrOutputWithContext(ctx context.Context) FirewallLogRatelimitPtrOutput

type FirewallMap

type FirewallMap map[string]FirewallInput

func (FirewallMap) ElementType

func (FirewallMap) ElementType() reflect.Type

func (FirewallMap) ToFirewallMapOutput

func (i FirewallMap) ToFirewallMapOutput() FirewallMapOutput

func (FirewallMap) ToFirewallMapOutputWithContext

func (i FirewallMap) ToFirewallMapOutputWithContext(ctx context.Context) FirewallMapOutput

type FirewallMapInput

type FirewallMapInput interface {
	pulumi.Input

	ToFirewallMapOutput() FirewallMapOutput
	ToFirewallMapOutputWithContext(context.Context) FirewallMapOutput
}

FirewallMapInput is an input type that accepts FirewallMap and FirewallMapOutput values. You can construct a concrete instance of `FirewallMapInput` via:

FirewallMap{ "key": FirewallArgs{...} }

type FirewallMapOutput

type FirewallMapOutput struct{ *pulumi.OutputState }

func (FirewallMapOutput) ElementType

func (FirewallMapOutput) ElementType() reflect.Type

func (FirewallMapOutput) MapIndex

func (FirewallMapOutput) ToFirewallMapOutput

func (o FirewallMapOutput) ToFirewallMapOutput() FirewallMapOutput

func (FirewallMapOutput) ToFirewallMapOutputWithContext

func (o FirewallMapOutput) ToFirewallMapOutputWithContext(ctx context.Context) FirewallMapOutput

type FirewallOptions

type FirewallOptions struct {
	pulumi.CustomResourceState

	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrOutput `pulumi:"containerId"`
	// Enable DHCP.
	Dhcp pulumi.BoolPtrOutput `pulumi:"dhcp"`
	// Enable or disable the firewall.
	Enabled pulumi.BoolPtrOutput `pulumi:"enabled"`
	// The default input
	// policy (`ACCEPT`, `DROP`, `REJECT`).
	InputPolicy pulumi.StringPtrOutput `pulumi:"inputPolicy"`
	// Enable default IP filters. This is equivalent to
	// adding an empty `ipfilter-net<id>` ipset for every interface. Such ipsets
	// implicitly contain sane default restrictions such as restricting IPv6 link
	// local addresses to the one derived from the interface's MAC address. For
	// containers the configured IP addresses will be implicitly added.
	Ipfilter pulumi.BoolPtrOutput `pulumi:"ipfilter"`
	// Log level for incoming
	// packets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,
	// `debug`, `nolog`).
	LogLevelIn pulumi.StringPtrOutput `pulumi:"logLevelIn"`
	// Log level for outgoing
	// packets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,
	// `debug`, `nolog`).
	LogLevelOut pulumi.StringPtrOutput `pulumi:"logLevelOut"`
	// Enable/disable MAC address filter.
	Macfilter pulumi.BoolPtrOutput `pulumi:"macfilter"`
	// Enable NDP (Neighbor Discovery Protocol).
	Ndp pulumi.BoolPtrOutput `pulumi:"ndp"`
	// Node name.
	NodeName pulumi.StringOutput `pulumi:"nodeName"`
	// The default output
	// policy (`ACCEPT`, `DROP`, `REJECT`).
	OutputPolicy pulumi.StringPtrOutput `pulumi:"outputPolicy"`
	// Enable Router Advertisement.
	Radv pulumi.BoolPtrOutput `pulumi:"radv"`
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrOutput `pulumi:"vmId"`
}

Manages firewall options on VM / Container level.

## Example Usage

```go package main

import (

"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Network"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := Network.NewFirewallOptions(ctx, "example", &Network.FirewallOptionsArgs{
			NodeName:     pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),
			VmId:         pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),
			Dhcp:         pulumi.Bool(true),
			Enabled:      pulumi.Bool(false),
			Ipfilter:     pulumi.Bool(true),
			LogLevelIn:   pulumi.String("info"),
			LogLevelOut:  pulumi.String("info"),
			Macfilter:    pulumi.Bool(false),
			Ndp:          pulumi.Bool(true),
			InputPolicy:  pulumi.String("ACCEPT"),
			OutputPolicy: pulumi.String("ACCEPT"),
			Radv:         pulumi.Bool(true),
		}, pulumi.DependsOn([]pulumi.Resource{
			proxmox_virtual_environment_vm.Example,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetFirewallOptions

func GetFirewallOptions(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FirewallOptionsState, opts ...pulumi.ResourceOption) (*FirewallOptions, error)

GetFirewallOptions gets an existing FirewallOptions resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFirewallOptions

func NewFirewallOptions(ctx *pulumi.Context,
	name string, args *FirewallOptionsArgs, opts ...pulumi.ResourceOption) (*FirewallOptions, error)

NewFirewallOptions registers a new resource with the given unique name, arguments, and options.

func (*FirewallOptions) ElementType

func (*FirewallOptions) ElementType() reflect.Type

func (*FirewallOptions) ToFirewallOptionsOutput

func (i *FirewallOptions) ToFirewallOptionsOutput() FirewallOptionsOutput

func (*FirewallOptions) ToFirewallOptionsOutputWithContext

func (i *FirewallOptions) ToFirewallOptionsOutputWithContext(ctx context.Context) FirewallOptionsOutput

type FirewallOptionsArgs

type FirewallOptionsArgs struct {
	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrInput
	// Enable DHCP.
	Dhcp pulumi.BoolPtrInput
	// Enable or disable the firewall.
	Enabled pulumi.BoolPtrInput
	// The default input
	// policy (`ACCEPT`, `DROP`, `REJECT`).
	InputPolicy pulumi.StringPtrInput
	// Enable default IP filters. This is equivalent to
	// adding an empty `ipfilter-net<id>` ipset for every interface. Such ipsets
	// implicitly contain sane default restrictions such as restricting IPv6 link
	// local addresses to the one derived from the interface's MAC address. For
	// containers the configured IP addresses will be implicitly added.
	Ipfilter pulumi.BoolPtrInput
	// Log level for incoming
	// packets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,
	// `debug`, `nolog`).
	LogLevelIn pulumi.StringPtrInput
	// Log level for outgoing
	// packets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,
	// `debug`, `nolog`).
	LogLevelOut pulumi.StringPtrInput
	// Enable/disable MAC address filter.
	Macfilter pulumi.BoolPtrInput
	// Enable NDP (Neighbor Discovery Protocol).
	Ndp pulumi.BoolPtrInput
	// Node name.
	NodeName pulumi.StringInput
	// The default output
	// policy (`ACCEPT`, `DROP`, `REJECT`).
	OutputPolicy pulumi.StringPtrInput
	// Enable Router Advertisement.
	Radv pulumi.BoolPtrInput
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrInput
}

The set of arguments for constructing a FirewallOptions resource.

func (FirewallOptionsArgs) ElementType

func (FirewallOptionsArgs) ElementType() reflect.Type

type FirewallOptionsArray

type FirewallOptionsArray []FirewallOptionsInput

func (FirewallOptionsArray) ElementType

func (FirewallOptionsArray) ElementType() reflect.Type

func (FirewallOptionsArray) ToFirewallOptionsArrayOutput

func (i FirewallOptionsArray) ToFirewallOptionsArrayOutput() FirewallOptionsArrayOutput

func (FirewallOptionsArray) ToFirewallOptionsArrayOutputWithContext

func (i FirewallOptionsArray) ToFirewallOptionsArrayOutputWithContext(ctx context.Context) FirewallOptionsArrayOutput

type FirewallOptionsArrayInput

type FirewallOptionsArrayInput interface {
	pulumi.Input

	ToFirewallOptionsArrayOutput() FirewallOptionsArrayOutput
	ToFirewallOptionsArrayOutputWithContext(context.Context) FirewallOptionsArrayOutput
}

FirewallOptionsArrayInput is an input type that accepts FirewallOptionsArray and FirewallOptionsArrayOutput values. You can construct a concrete instance of `FirewallOptionsArrayInput` via:

FirewallOptionsArray{ FirewallOptionsArgs{...} }

type FirewallOptionsArrayOutput

type FirewallOptionsArrayOutput struct{ *pulumi.OutputState }

func (FirewallOptionsArrayOutput) ElementType

func (FirewallOptionsArrayOutput) ElementType() reflect.Type

func (FirewallOptionsArrayOutput) Index

func (FirewallOptionsArrayOutput) ToFirewallOptionsArrayOutput

func (o FirewallOptionsArrayOutput) ToFirewallOptionsArrayOutput() FirewallOptionsArrayOutput

func (FirewallOptionsArrayOutput) ToFirewallOptionsArrayOutputWithContext

func (o FirewallOptionsArrayOutput) ToFirewallOptionsArrayOutputWithContext(ctx context.Context) FirewallOptionsArrayOutput

type FirewallOptionsInput

type FirewallOptionsInput interface {
	pulumi.Input

	ToFirewallOptionsOutput() FirewallOptionsOutput
	ToFirewallOptionsOutputWithContext(ctx context.Context) FirewallOptionsOutput
}

type FirewallOptionsMap

type FirewallOptionsMap map[string]FirewallOptionsInput

func (FirewallOptionsMap) ElementType

func (FirewallOptionsMap) ElementType() reflect.Type

func (FirewallOptionsMap) ToFirewallOptionsMapOutput

func (i FirewallOptionsMap) ToFirewallOptionsMapOutput() FirewallOptionsMapOutput

func (FirewallOptionsMap) ToFirewallOptionsMapOutputWithContext

func (i FirewallOptionsMap) ToFirewallOptionsMapOutputWithContext(ctx context.Context) FirewallOptionsMapOutput

type FirewallOptionsMapInput

type FirewallOptionsMapInput interface {
	pulumi.Input

	ToFirewallOptionsMapOutput() FirewallOptionsMapOutput
	ToFirewallOptionsMapOutputWithContext(context.Context) FirewallOptionsMapOutput
}

FirewallOptionsMapInput is an input type that accepts FirewallOptionsMap and FirewallOptionsMapOutput values. You can construct a concrete instance of `FirewallOptionsMapInput` via:

FirewallOptionsMap{ "key": FirewallOptionsArgs{...} }

type FirewallOptionsMapOutput

type FirewallOptionsMapOutput struct{ *pulumi.OutputState }

func (FirewallOptionsMapOutput) ElementType

func (FirewallOptionsMapOutput) ElementType() reflect.Type

func (FirewallOptionsMapOutput) MapIndex

func (FirewallOptionsMapOutput) ToFirewallOptionsMapOutput

func (o FirewallOptionsMapOutput) ToFirewallOptionsMapOutput() FirewallOptionsMapOutput

func (FirewallOptionsMapOutput) ToFirewallOptionsMapOutputWithContext

func (o FirewallOptionsMapOutput) ToFirewallOptionsMapOutputWithContext(ctx context.Context) FirewallOptionsMapOutput

type FirewallOptionsOutput

type FirewallOptionsOutput struct{ *pulumi.OutputState }

func (FirewallOptionsOutput) ContainerId

func (o FirewallOptionsOutput) ContainerId() pulumi.IntPtrOutput

Container ID. Leave empty for cluster level aliases.

func (FirewallOptionsOutput) Dhcp

Enable DHCP.

func (FirewallOptionsOutput) ElementType

func (FirewallOptionsOutput) ElementType() reflect.Type

func (FirewallOptionsOutput) Enabled

Enable or disable the firewall.

func (FirewallOptionsOutput) InputPolicy

The default input policy (`ACCEPT`, `DROP`, `REJECT`).

func (FirewallOptionsOutput) Ipfilter

Enable default IP filters. This is equivalent to adding an empty `ipfilter-net<id>` ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.

func (FirewallOptionsOutput) LogLevelIn

Log level for incoming packets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `debug`, `nolog`).

func (FirewallOptionsOutput) LogLevelOut

Log level for outgoing packets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `debug`, `nolog`).

func (FirewallOptionsOutput) Macfilter

Enable/disable MAC address filter.

func (FirewallOptionsOutput) Ndp

Enable NDP (Neighbor Discovery Protocol).

func (FirewallOptionsOutput) NodeName

Node name.

func (FirewallOptionsOutput) OutputPolicy

func (o FirewallOptionsOutput) OutputPolicy() pulumi.StringPtrOutput

The default output policy (`ACCEPT`, `DROP`, `REJECT`).

func (FirewallOptionsOutput) Radv

Enable Router Advertisement.

func (FirewallOptionsOutput) ToFirewallOptionsOutput

func (o FirewallOptionsOutput) ToFirewallOptionsOutput() FirewallOptionsOutput

func (FirewallOptionsOutput) ToFirewallOptionsOutputWithContext

func (o FirewallOptionsOutput) ToFirewallOptionsOutputWithContext(ctx context.Context) FirewallOptionsOutput

func (FirewallOptionsOutput) VmId

VM ID. Leave empty for cluster level aliases.

type FirewallOptionsState

type FirewallOptionsState struct {
	// Container ID. Leave empty for cluster level aliases.
	ContainerId pulumi.IntPtrInput
	// Enable DHCP.
	Dhcp pulumi.BoolPtrInput
	// Enable or disable the firewall.
	Enabled pulumi.BoolPtrInput
	// The default input
	// policy (`ACCEPT`, `DROP`, `REJECT`).
	InputPolicy pulumi.StringPtrInput
	// Enable default IP filters. This is equivalent to
	// adding an empty `ipfilter-net<id>` ipset for every interface. Such ipsets
	// implicitly contain sane default restrictions such as restricting IPv6 link
	// local addresses to the one derived from the interface's MAC address. For
	// containers the configured IP addresses will be implicitly added.
	Ipfilter pulumi.BoolPtrInput
	// Log level for incoming
	// packets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,
	// `debug`, `nolog`).
	LogLevelIn pulumi.StringPtrInput
	// Log level for outgoing
	// packets (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`,
	// `debug`, `nolog`).
	LogLevelOut pulumi.StringPtrInput
	// Enable/disable MAC address filter.
	Macfilter pulumi.BoolPtrInput
	// Enable NDP (Neighbor Discovery Protocol).
	Ndp pulumi.BoolPtrInput
	// Node name.
	NodeName pulumi.StringPtrInput
	// The default output
	// policy (`ACCEPT`, `DROP`, `REJECT`).
	OutputPolicy pulumi.StringPtrInput
	// Enable Router Advertisement.
	Radv pulumi.BoolPtrInput
	// VM ID. Leave empty for cluster level aliases.
	VmId pulumi.IntPtrInput
}

func (FirewallOptionsState) ElementType

func (FirewallOptionsState) ElementType() reflect.Type

type FirewallOutput

type FirewallOutput struct{ *pulumi.OutputState }

func (FirewallOutput) Ebtables

func (o FirewallOutput) Ebtables() pulumi.BoolPtrOutput

Enable ebtables rules cluster wide.

func (FirewallOutput) ElementType

func (FirewallOutput) ElementType() reflect.Type

func (FirewallOutput) Enabled

func (o FirewallOutput) Enabled() pulumi.BoolPtrOutput

Enable or disable the log rate limit.

func (FirewallOutput) InputPolicy

func (o FirewallOutput) InputPolicy() pulumi.StringPtrOutput

The default input policy (`ACCEPT`, `DROP`, `REJECT`).

func (FirewallOutput) LogRatelimit

The log rate limit.

func (FirewallOutput) OutputPolicy

func (o FirewallOutput) OutputPolicy() pulumi.StringPtrOutput

The default output policy (`ACCEPT`, `DROP`, `REJECT`).

func (FirewallOutput) ToFirewallOutput

func (o FirewallOutput) ToFirewallOutput() FirewallOutput

func (FirewallOutput) ToFirewallOutputWithContext

func (o FirewallOutput) ToFirewallOutputWithContext(ctx context.Context) FirewallOutput

type FirewallRules

type FirewallRules struct {
	pulumi.CustomResourceState

	// Container ID. Leave empty for cluster level
	// rules.
	ContainerId pulumi.IntPtrOutput `pulumi:"containerId"`
	// Node name. Leave empty for cluster level rules.
	NodeName pulumi.StringPtrOutput `pulumi:"nodeName"`
	// Firewall rule block (multiple blocks supported).
	// The provider supports two types of the `rule` blocks:
	// - A rule definition block, which includes the following arguments:
	Rules FirewallRulesRuleArrayOutput `pulumi:"rules"`
	// VM ID. Leave empty for cluster level rules.
	VmId pulumi.IntPtrOutput `pulumi:"vmId"`
}

A security group is a collection of rules, defined at cluster level, which can be used in all VMs' rules. For example, you can define a group named “webserver” with rules to open the http and https ports. Rules can be created on the cluster level, on VM / Container level.

## Example Usage

```go package main

import (

"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Network"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := Network.NewFirewallRules(ctx, "inbound", &Network.FirewallRulesArgs{
			NodeName: pulumi.Any(proxmox_virtual_environment_vm.Example.Node_name),
			VmId:     pulumi.Any(proxmox_virtual_environment_vm.Example.Vm_id),
			Rules: network.FirewallRulesRuleArray{
				&network.FirewallRulesRuleArgs{
					Type:    pulumi.String("in"),
					Action:  pulumi.String("ACCEPT"),
					Comment: pulumi.String("Allow HTTP"),
					Dest:    pulumi.String("192.168.1.5"),
					Dport:   pulumi.String("80"),
					Proto:   pulumi.String("tcp"),
					Log:     pulumi.String("info"),
				},
				&network.FirewallRulesRuleArgs{
					Type:    pulumi.String("in"),
					Action:  pulumi.String("ACCEPT"),
					Comment: pulumi.String("Allow HTTPS"),
					Dest:    pulumi.String("192.168.1.5"),
					Dport:   pulumi.String("443"),
					Proto:   pulumi.String("tcp"),
					Log:     pulumi.String("info"),
				},
				&network.FirewallRulesRuleArgs{
					SecurityGroup: pulumi.Any(proxmox_virtual_environment_cluster_firewall_security_group.Example.Name),
					Comment:       pulumi.String("From security group"),
					Iface:         pulumi.String("net0"),
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			proxmox_virtual_environment_vm.Example,
			proxmox_virtual_environment_cluster_firewall_security_group.Example,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetFirewallRules

func GetFirewallRules(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FirewallRulesState, opts ...pulumi.ResourceOption) (*FirewallRules, error)

GetFirewallRules gets an existing FirewallRules resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFirewallRules

func NewFirewallRules(ctx *pulumi.Context,
	name string, args *FirewallRulesArgs, opts ...pulumi.ResourceOption) (*FirewallRules, error)

NewFirewallRules registers a new resource with the given unique name, arguments, and options.

func (*FirewallRules) ElementType

func (*FirewallRules) ElementType() reflect.Type

func (*FirewallRules) ToFirewallRulesOutput

func (i *FirewallRules) ToFirewallRulesOutput() FirewallRulesOutput

func (*FirewallRules) ToFirewallRulesOutputWithContext

func (i *FirewallRules) ToFirewallRulesOutputWithContext(ctx context.Context) FirewallRulesOutput

type FirewallRulesArgs

type FirewallRulesArgs struct {
	// Container ID. Leave empty for cluster level
	// rules.
	ContainerId pulumi.IntPtrInput
	// Node name. Leave empty for cluster level rules.
	NodeName pulumi.StringPtrInput
	// Firewall rule block (multiple blocks supported).
	// The provider supports two types of the `rule` blocks:
	// - A rule definition block, which includes the following arguments:
	Rules FirewallRulesRuleArrayInput
	// VM ID. Leave empty for cluster level rules.
	VmId pulumi.IntPtrInput
}

The set of arguments for constructing a FirewallRules resource.

func (FirewallRulesArgs) ElementType

func (FirewallRulesArgs) ElementType() reflect.Type

type FirewallRulesArray

type FirewallRulesArray []FirewallRulesInput

func (FirewallRulesArray) ElementType

func (FirewallRulesArray) ElementType() reflect.Type

func (FirewallRulesArray) ToFirewallRulesArrayOutput

func (i FirewallRulesArray) ToFirewallRulesArrayOutput() FirewallRulesArrayOutput

func (FirewallRulesArray) ToFirewallRulesArrayOutputWithContext

func (i FirewallRulesArray) ToFirewallRulesArrayOutputWithContext(ctx context.Context) FirewallRulesArrayOutput

type FirewallRulesArrayInput

type FirewallRulesArrayInput interface {
	pulumi.Input

	ToFirewallRulesArrayOutput() FirewallRulesArrayOutput
	ToFirewallRulesArrayOutputWithContext(context.Context) FirewallRulesArrayOutput
}

FirewallRulesArrayInput is an input type that accepts FirewallRulesArray and FirewallRulesArrayOutput values. You can construct a concrete instance of `FirewallRulesArrayInput` via:

FirewallRulesArray{ FirewallRulesArgs{...} }

type FirewallRulesArrayOutput

type FirewallRulesArrayOutput struct{ *pulumi.OutputState }

func (FirewallRulesArrayOutput) ElementType

func (FirewallRulesArrayOutput) ElementType() reflect.Type

func (FirewallRulesArrayOutput) Index

func (FirewallRulesArrayOutput) ToFirewallRulesArrayOutput

func (o FirewallRulesArrayOutput) ToFirewallRulesArrayOutput() FirewallRulesArrayOutput

func (FirewallRulesArrayOutput) ToFirewallRulesArrayOutputWithContext

func (o FirewallRulesArrayOutput) ToFirewallRulesArrayOutputWithContext(ctx context.Context) FirewallRulesArrayOutput

type FirewallRulesInput

type FirewallRulesInput interface {
	pulumi.Input

	ToFirewallRulesOutput() FirewallRulesOutput
	ToFirewallRulesOutputWithContext(ctx context.Context) FirewallRulesOutput
}

type FirewallRulesMap

type FirewallRulesMap map[string]FirewallRulesInput

func (FirewallRulesMap) ElementType

func (FirewallRulesMap) ElementType() reflect.Type

func (FirewallRulesMap) ToFirewallRulesMapOutput

func (i FirewallRulesMap) ToFirewallRulesMapOutput() FirewallRulesMapOutput

func (FirewallRulesMap) ToFirewallRulesMapOutputWithContext

func (i FirewallRulesMap) ToFirewallRulesMapOutputWithContext(ctx context.Context) FirewallRulesMapOutput

type FirewallRulesMapInput

type FirewallRulesMapInput interface {
	pulumi.Input

	ToFirewallRulesMapOutput() FirewallRulesMapOutput
	ToFirewallRulesMapOutputWithContext(context.Context) FirewallRulesMapOutput
}

FirewallRulesMapInput is an input type that accepts FirewallRulesMap and FirewallRulesMapOutput values. You can construct a concrete instance of `FirewallRulesMapInput` via:

FirewallRulesMap{ "key": FirewallRulesArgs{...} }

type FirewallRulesMapOutput

type FirewallRulesMapOutput struct{ *pulumi.OutputState }

func (FirewallRulesMapOutput) ElementType

func (FirewallRulesMapOutput) ElementType() reflect.Type

func (FirewallRulesMapOutput) MapIndex

func (FirewallRulesMapOutput) ToFirewallRulesMapOutput

func (o FirewallRulesMapOutput) ToFirewallRulesMapOutput() FirewallRulesMapOutput

func (FirewallRulesMapOutput) ToFirewallRulesMapOutputWithContext

func (o FirewallRulesMapOutput) ToFirewallRulesMapOutputWithContext(ctx context.Context) FirewallRulesMapOutput

type FirewallRulesOutput

type FirewallRulesOutput struct{ *pulumi.OutputState }

func (FirewallRulesOutput) ContainerId

func (o FirewallRulesOutput) ContainerId() pulumi.IntPtrOutput

Container ID. Leave empty for cluster level rules.

func (FirewallRulesOutput) ElementType

func (FirewallRulesOutput) ElementType() reflect.Type

func (FirewallRulesOutput) NodeName

Node name. Leave empty for cluster level rules.

func (FirewallRulesOutput) Rules

Firewall rule block (multiple blocks supported). The provider supports two types of the `rule` blocks: - A rule definition block, which includes the following arguments:

func (FirewallRulesOutput) ToFirewallRulesOutput

func (o FirewallRulesOutput) ToFirewallRulesOutput() FirewallRulesOutput

func (FirewallRulesOutput) ToFirewallRulesOutputWithContext

func (o FirewallRulesOutput) ToFirewallRulesOutputWithContext(ctx context.Context) FirewallRulesOutput

func (FirewallRulesOutput) VmId

VM ID. Leave empty for cluster level rules.

type FirewallRulesRule

type FirewallRulesRule struct {
	// Rule action (`ACCEPT`, `DROP`, `REJECT`).
	Action *string `pulumi:"action"`
	// Rule comment.
	Comment *string `pulumi:"comment"`
	// Restrict packet destination address. This can
	// refer to a single IP address, an IP set ('+ipsetname') or an IP
	// alias definition. You can also specify an address range
	// like `20.34.101.207-201.3.9.99`, or a list of IP addresses and
	// networks (entries are separated by comma). Please do not mix IPv4
	// and IPv6 addresses inside such lists.
	Dest *string `pulumi:"dest"`
	// Restrict TCP/UDP destination port. You can use
	// service names or simple numbers (0-65535), as defined
	// in `/etc/services`. Port ranges can be specified with '\d+:\d+', for
	// example `80:85`, and you can use comma separated list to match
	// several ports or ranges.
	Dport *string `pulumi:"dport"`
	// Enable this rule. Defaults to `true`.
	Enabled *bool `pulumi:"enabled"`
	// Network interface name. You have to use network
	// configuration key names for VMs and containers ('net\d+'). Host
	// related rules can use arbitrary strings.
	Iface *string `pulumi:"iface"`
	// Log level for this rule (`emerg`, `alert`, `crit`,
	// `err`, `warning`, `notice`, `info`, `debug`, `nolog`).
	Log *string `pulumi:"log"`
	// Macro name. Use predefined standard macro
	// from <https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions>
	Macro *string `pulumi:"macro"`
	// Position of the rule in the list.
	Pos *int `pulumi:"pos"`
	// Restrict packet protocol. You can use protocol
	// names as defined in '/etc/protocols'.
	Proto *string `pulumi:"proto"`
	// Security group name.
	SecurityGroup *string `pulumi:"securityGroup"`
	// Restrict packet source address. This can refer
	// to a single IP address, an IP set ('+ipsetname') or an IP alias
	// definition. You can also specify an address range
	// like `20.34.101.207-201.3.9.99`, or a list of IP addresses and
	// networks (entries are separated by comma). Please do not mix IPv4
	// and IPv6 addresses inside such lists.
	Source *string `pulumi:"source"`
	// Restrict TCP/UDP source port. You can use
	// service names or simple numbers (0-65535), as defined
	// in `/etc/services`. Port ranges can be specified with '\d+:\d+', for
	// example `80:85`, and you can use comma separated list to match
	// several ports or ranges.
	// - a security group insertion block, which includes the following arguments:
	Sport *string `pulumi:"sport"`
	// Rule type (`in`, `out`).
	Type *string `pulumi:"type"`
}

type FirewallRulesRuleArgs

type FirewallRulesRuleArgs struct {
	// Rule action (`ACCEPT`, `DROP`, `REJECT`).
	Action pulumi.StringPtrInput `pulumi:"action"`
	// Rule comment.
	Comment pulumi.StringPtrInput `pulumi:"comment"`
	// Restrict packet destination address. This can
	// refer to a single IP address, an IP set ('+ipsetname') or an IP
	// alias definition. You can also specify an address range
	// like `20.34.101.207-201.3.9.99`, or a list of IP addresses and
	// networks (entries are separated by comma). Please do not mix IPv4
	// and IPv6 addresses inside such lists.
	Dest pulumi.StringPtrInput `pulumi:"dest"`
	// Restrict TCP/UDP destination port. You can use
	// service names or simple numbers (0-65535), as defined
	// in `/etc/services`. Port ranges can be specified with '\d+:\d+', for
	// example `80:85`, and you can use comma separated list to match
	// several ports or ranges.
	Dport pulumi.StringPtrInput `pulumi:"dport"`
	// Enable this rule. Defaults to `true`.
	Enabled pulumi.BoolPtrInput `pulumi:"enabled"`
	// Network interface name. You have to use network
	// configuration key names for VMs and containers ('net\d+'). Host
	// related rules can use arbitrary strings.
	Iface pulumi.StringPtrInput `pulumi:"iface"`
	// Log level for this rule (`emerg`, `alert`, `crit`,
	// `err`, `warning`, `notice`, `info`, `debug`, `nolog`).
	Log pulumi.StringPtrInput `pulumi:"log"`
	// Macro name. Use predefined standard macro
	// from <https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions>
	Macro pulumi.StringPtrInput `pulumi:"macro"`
	// Position of the rule in the list.
	Pos pulumi.IntPtrInput `pulumi:"pos"`
	// Restrict packet protocol. You can use protocol
	// names as defined in '/etc/protocols'.
	Proto pulumi.StringPtrInput `pulumi:"proto"`
	// Security group name.
	SecurityGroup pulumi.StringPtrInput `pulumi:"securityGroup"`
	// Restrict packet source address. This can refer
	// to a single IP address, an IP set ('+ipsetname') or an IP alias
	// definition. You can also specify an address range
	// like `20.34.101.207-201.3.9.99`, or a list of IP addresses and
	// networks (entries are separated by comma). Please do not mix IPv4
	// and IPv6 addresses inside such lists.
	Source pulumi.StringPtrInput `pulumi:"source"`
	// Restrict TCP/UDP source port. You can use
	// service names or simple numbers (0-65535), as defined
	// in `/etc/services`. Port ranges can be specified with '\d+:\d+', for
	// example `80:85`, and you can use comma separated list to match
	// several ports or ranges.
	// - a security group insertion block, which includes the following arguments:
	Sport pulumi.StringPtrInput `pulumi:"sport"`
	// Rule type (`in`, `out`).
	Type pulumi.StringPtrInput `pulumi:"type"`
}

func (FirewallRulesRuleArgs) ElementType

func (FirewallRulesRuleArgs) ElementType() reflect.Type

func (FirewallRulesRuleArgs) ToFirewallRulesRuleOutput

func (i FirewallRulesRuleArgs) ToFirewallRulesRuleOutput() FirewallRulesRuleOutput

func (FirewallRulesRuleArgs) ToFirewallRulesRuleOutputWithContext

func (i FirewallRulesRuleArgs) ToFirewallRulesRuleOutputWithContext(ctx context.Context) FirewallRulesRuleOutput

type FirewallRulesRuleArray

type FirewallRulesRuleArray []FirewallRulesRuleInput

func (FirewallRulesRuleArray) ElementType

func (FirewallRulesRuleArray) ElementType() reflect.Type

func (FirewallRulesRuleArray) ToFirewallRulesRuleArrayOutput

func (i FirewallRulesRuleArray) ToFirewallRulesRuleArrayOutput() FirewallRulesRuleArrayOutput

func (FirewallRulesRuleArray) ToFirewallRulesRuleArrayOutputWithContext

func (i FirewallRulesRuleArray) ToFirewallRulesRuleArrayOutputWithContext(ctx context.Context) FirewallRulesRuleArrayOutput

type FirewallRulesRuleArrayInput

type FirewallRulesRuleArrayInput interface {
	pulumi.Input

	ToFirewallRulesRuleArrayOutput() FirewallRulesRuleArrayOutput
	ToFirewallRulesRuleArrayOutputWithContext(context.Context) FirewallRulesRuleArrayOutput
}

FirewallRulesRuleArrayInput is an input type that accepts FirewallRulesRuleArray and FirewallRulesRuleArrayOutput values. You can construct a concrete instance of `FirewallRulesRuleArrayInput` via:

FirewallRulesRuleArray{ FirewallRulesRuleArgs{...} }

type FirewallRulesRuleArrayOutput

type FirewallRulesRuleArrayOutput struct{ *pulumi.OutputState }

func (FirewallRulesRuleArrayOutput) ElementType

func (FirewallRulesRuleArrayOutput) Index

func (FirewallRulesRuleArrayOutput) ToFirewallRulesRuleArrayOutput

func (o FirewallRulesRuleArrayOutput) ToFirewallRulesRuleArrayOutput() FirewallRulesRuleArrayOutput

func (FirewallRulesRuleArrayOutput) ToFirewallRulesRuleArrayOutputWithContext

func (o FirewallRulesRuleArrayOutput) ToFirewallRulesRuleArrayOutputWithContext(ctx context.Context) FirewallRulesRuleArrayOutput

type FirewallRulesRuleInput

type FirewallRulesRuleInput interface {
	pulumi.Input

	ToFirewallRulesRuleOutput() FirewallRulesRuleOutput
	ToFirewallRulesRuleOutputWithContext(context.Context) FirewallRulesRuleOutput
}

FirewallRulesRuleInput is an input type that accepts FirewallRulesRuleArgs and FirewallRulesRuleOutput values. You can construct a concrete instance of `FirewallRulesRuleInput` via:

FirewallRulesRuleArgs{...}

type FirewallRulesRuleOutput

type FirewallRulesRuleOutput struct{ *pulumi.OutputState }

func (FirewallRulesRuleOutput) Action

Rule action (`ACCEPT`, `DROP`, `REJECT`).

func (FirewallRulesRuleOutput) Comment

Rule comment.

func (FirewallRulesRuleOutput) Dest

Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.

func (FirewallRulesRuleOutput) Dport

Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in `/etc/services`. Port ranges can be specified with '\d+:\d+', for example `80:85`, and you can use comma separated list to match several ports or ranges.

func (FirewallRulesRuleOutput) ElementType

func (FirewallRulesRuleOutput) ElementType() reflect.Type

func (FirewallRulesRuleOutput) Enabled

Enable this rule. Defaults to `true`.

func (FirewallRulesRuleOutput) Iface

Network interface name. You have to use network configuration key names for VMs and containers ('net\d+'). Host related rules can use arbitrary strings.

func (FirewallRulesRuleOutput) Log

Log level for this rule (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `debug`, `nolog`).

func (FirewallRulesRuleOutput) Macro

Macro name. Use predefined standard macro from <https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions>

func (FirewallRulesRuleOutput) Pos

Position of the rule in the list.

func (FirewallRulesRuleOutput) Proto

Restrict packet protocol. You can use protocol names as defined in '/etc/protocols'.

func (FirewallRulesRuleOutput) SecurityGroup

Security group name.

func (FirewallRulesRuleOutput) Source

Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.

func (FirewallRulesRuleOutput) Sport

Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in `/etc/services`. Port ranges can be specified with '\d+:\d+', for example `80:85`, and you can use comma separated list to match several ports or ranges. - a security group insertion block, which includes the following arguments:

func (FirewallRulesRuleOutput) ToFirewallRulesRuleOutput

func (o FirewallRulesRuleOutput) ToFirewallRulesRuleOutput() FirewallRulesRuleOutput

func (FirewallRulesRuleOutput) ToFirewallRulesRuleOutputWithContext

func (o FirewallRulesRuleOutput) ToFirewallRulesRuleOutputWithContext(ctx context.Context) FirewallRulesRuleOutput

func (FirewallRulesRuleOutput) Type

Rule type (`in`, `out`).

type FirewallRulesState

type FirewallRulesState struct {
	// Container ID. Leave empty for cluster level
	// rules.
	ContainerId pulumi.IntPtrInput
	// Node name. Leave empty for cluster level rules.
	NodeName pulumi.StringPtrInput
	// Firewall rule block (multiple blocks supported).
	// The provider supports two types of the `rule` blocks:
	// - A rule definition block, which includes the following arguments:
	Rules FirewallRulesRuleArrayInput
	// VM ID. Leave empty for cluster level rules.
	VmId pulumi.IntPtrInput
}

func (FirewallRulesState) ElementType

func (FirewallRulesState) ElementType() reflect.Type

type FirewallSecurityGroup

type FirewallSecurityGroup struct {
	pulumi.CustomResourceState

	// Rule comment.
	Comment pulumi.StringPtrOutput `pulumi:"comment"`
	// The ID of the container to manage the firewall for.
	ContainerId pulumi.IntPtrOutput `pulumi:"containerId"`
	// Security group name.
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of the node.
	NodeName pulumi.StringPtrOutput `pulumi:"nodeName"`
	// Firewall rule block (multiple blocks supported).
	Rules FirewallSecurityGroupRuleArrayOutput `pulumi:"rules"`
	// The ID of the VM to manage the firewall for.
	VmId pulumi.IntPtrOutput `pulumi:"vmId"`
}

A security group is a collection of rules, defined at cluster level, which can be used in all VMs' rules. For example, you can define a group named “webserver” with rules to open the http and https ports.

## Example Usage

```go package main

import (

"github.com/muhlba91/pulumi-proxmoxve/sdk/v5/go/proxmoxve/Network"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := Network.NewFirewallSecurityGroup(ctx, "webserver", &Network.FirewallSecurityGroupArgs{
			Comment: pulumi.String("Managed by Terraform"),
			Rules: network.FirewallSecurityGroupRuleArray{
				&network.FirewallSecurityGroupRuleArgs{
					Action:  pulumi.String("ACCEPT"),
					Comment: pulumi.String("Allow HTTP"),
					Dest:    pulumi.String("192.168.1.5"),
					Dport:   pulumi.String("80"),
					Log:     pulumi.String("info"),
					Proto:   pulumi.String("tcp"),
					Type:    pulumi.String("in"),
				},
				&network.FirewallSecurityGroupRuleArgs{
					Action:  pulumi.String("ACCEPT"),
					Comment: pulumi.String("Allow HTTPS"),
					Dest:    pulumi.String("192.168.1.5"),
					Dport:   pulumi.String("443"),
					Log:     pulumi.String("info"),
					Proto:   pulumi.String("tcp"),
					Type:    pulumi.String("in"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Instances can be imported using the `name`, e.g.,

bash

```sh $ pulumi import proxmoxve:Network/firewallSecurityGroup:FirewallSecurityGroup webserver webserver ```

func GetFirewallSecurityGroup

func GetFirewallSecurityGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FirewallSecurityGroupState, opts ...pulumi.ResourceOption) (*FirewallSecurityGroup, error)

GetFirewallSecurityGroup gets an existing FirewallSecurityGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFirewallSecurityGroup

func NewFirewallSecurityGroup(ctx *pulumi.Context,
	name string, args *FirewallSecurityGroupArgs, opts ...pulumi.ResourceOption) (*FirewallSecurityGroup, error)

NewFirewallSecurityGroup registers a new resource with the given unique name, arguments, and options.

func (*FirewallSecurityGroup) ElementType

func (*FirewallSecurityGroup) ElementType() reflect.Type

func (*FirewallSecurityGroup) ToFirewallSecurityGroupOutput

func (i *FirewallSecurityGroup) ToFirewallSecurityGroupOutput() FirewallSecurityGroupOutput

func (*FirewallSecurityGroup) ToFirewallSecurityGroupOutputWithContext

func (i *FirewallSecurityGroup) ToFirewallSecurityGroupOutputWithContext(ctx context.Context) FirewallSecurityGroupOutput

type FirewallSecurityGroupArgs

type FirewallSecurityGroupArgs struct {
	// Rule comment.
	Comment pulumi.StringPtrInput
	// The ID of the container to manage the firewall for.
	ContainerId pulumi.IntPtrInput
	// Security group name.
	Name pulumi.StringPtrInput
	// The name of the node.
	NodeName pulumi.StringPtrInput
	// Firewall rule block (multiple blocks supported).
	Rules FirewallSecurityGroupRuleArrayInput
	// The ID of the VM to manage the firewall for.
	VmId pulumi.IntPtrInput
}

The set of arguments for constructing a FirewallSecurityGroup resource.

func (FirewallSecurityGroupArgs) ElementType

func (FirewallSecurityGroupArgs) ElementType() reflect.Type

type FirewallSecurityGroupArray

type FirewallSecurityGroupArray []FirewallSecurityGroupInput

func (FirewallSecurityGroupArray) ElementType

func (FirewallSecurityGroupArray) ElementType() reflect.Type

func (FirewallSecurityGroupArray) ToFirewallSecurityGroupArrayOutput

func (i FirewallSecurityGroupArray) ToFirewallSecurityGroupArrayOutput() FirewallSecurityGroupArrayOutput

func (FirewallSecurityGroupArray) ToFirewallSecurityGroupArrayOutputWithContext

func (i FirewallSecurityGroupArray) ToFirewallSecurityGroupArrayOutputWithContext(ctx context.Context) FirewallSecurityGroupArrayOutput

type FirewallSecurityGroupArrayInput

type FirewallSecurityGroupArrayInput interface {
	pulumi.Input

	ToFirewallSecurityGroupArrayOutput() FirewallSecurityGroupArrayOutput
	ToFirewallSecurityGroupArrayOutputWithContext(context.Context) FirewallSecurityGroupArrayOutput
}

FirewallSecurityGroupArrayInput is an input type that accepts FirewallSecurityGroupArray and FirewallSecurityGroupArrayOutput values. You can construct a concrete instance of `FirewallSecurityGroupArrayInput` via:

FirewallSecurityGroupArray{ FirewallSecurityGroupArgs{...} }

type FirewallSecurityGroupArrayOutput

type FirewallSecurityGroupArrayOutput struct{ *pulumi.OutputState }

func (FirewallSecurityGroupArrayOutput) ElementType

func (FirewallSecurityGroupArrayOutput) Index

func (FirewallSecurityGroupArrayOutput) ToFirewallSecurityGroupArrayOutput

func (o FirewallSecurityGroupArrayOutput) ToFirewallSecurityGroupArrayOutput() FirewallSecurityGroupArrayOutput

func (FirewallSecurityGroupArrayOutput) ToFirewallSecurityGroupArrayOutputWithContext

func (o FirewallSecurityGroupArrayOutput) ToFirewallSecurityGroupArrayOutputWithContext(ctx context.Context) FirewallSecurityGroupArrayOutput

type FirewallSecurityGroupInput

type FirewallSecurityGroupInput interface {
	pulumi.Input

	ToFirewallSecurityGroupOutput() FirewallSecurityGroupOutput
	ToFirewallSecurityGroupOutputWithContext(ctx context.Context) FirewallSecurityGroupOutput
}

type FirewallSecurityGroupMap

type FirewallSecurityGroupMap map[string]FirewallSecurityGroupInput

func (FirewallSecurityGroupMap) ElementType

func (FirewallSecurityGroupMap) ElementType() reflect.Type

func (FirewallSecurityGroupMap) ToFirewallSecurityGroupMapOutput

func (i FirewallSecurityGroupMap) ToFirewallSecurityGroupMapOutput() FirewallSecurityGroupMapOutput

func (FirewallSecurityGroupMap) ToFirewallSecurityGroupMapOutputWithContext

func (i FirewallSecurityGroupMap) ToFirewallSecurityGroupMapOutputWithContext(ctx context.Context) FirewallSecurityGroupMapOutput

type FirewallSecurityGroupMapInput

type FirewallSecurityGroupMapInput interface {
	pulumi.Input

	ToFirewallSecurityGroupMapOutput() FirewallSecurityGroupMapOutput
	ToFirewallSecurityGroupMapOutputWithContext(context.Context) FirewallSecurityGroupMapOutput
}

FirewallSecurityGroupMapInput is an input type that accepts FirewallSecurityGroupMap and FirewallSecurityGroupMapOutput values. You can construct a concrete instance of `FirewallSecurityGroupMapInput` via:

FirewallSecurityGroupMap{ "key": FirewallSecurityGroupArgs{...} }

type FirewallSecurityGroupMapOutput

type FirewallSecurityGroupMapOutput struct{ *pulumi.OutputState }

func (FirewallSecurityGroupMapOutput) ElementType

func (FirewallSecurityGroupMapOutput) MapIndex

func (FirewallSecurityGroupMapOutput) ToFirewallSecurityGroupMapOutput

func (o FirewallSecurityGroupMapOutput) ToFirewallSecurityGroupMapOutput() FirewallSecurityGroupMapOutput

func (FirewallSecurityGroupMapOutput) ToFirewallSecurityGroupMapOutputWithContext

func (o FirewallSecurityGroupMapOutput) ToFirewallSecurityGroupMapOutputWithContext(ctx context.Context) FirewallSecurityGroupMapOutput

type FirewallSecurityGroupOutput

type FirewallSecurityGroupOutput struct{ *pulumi.OutputState }

func (FirewallSecurityGroupOutput) Comment

Rule comment.

func (FirewallSecurityGroupOutput) ContainerId

The ID of the container to manage the firewall for.

func (FirewallSecurityGroupOutput) ElementType

func (FirewallSecurityGroupOutput) Name

Security group name.

func (FirewallSecurityGroupOutput) NodeName

The name of the node.

func (FirewallSecurityGroupOutput) Rules

Firewall rule block (multiple blocks supported).

func (FirewallSecurityGroupOutput) ToFirewallSecurityGroupOutput

func (o FirewallSecurityGroupOutput) ToFirewallSecurityGroupOutput() FirewallSecurityGroupOutput

func (FirewallSecurityGroupOutput) ToFirewallSecurityGroupOutputWithContext

func (o FirewallSecurityGroupOutput) ToFirewallSecurityGroupOutputWithContext(ctx context.Context) FirewallSecurityGroupOutput

func (FirewallSecurityGroupOutput) VmId

The ID of the VM to manage the firewall for.

type FirewallSecurityGroupRule

type FirewallSecurityGroupRule struct {
	// Rule action (`ACCEPT`, `DROP`, `REJECT`).
	Action *string `pulumi:"action"`
	// Rule comment.
	Comment *string `pulumi:"comment"`
	// Restrict packet destination address. This can refer to
	// a single IP address, an IP set ('+ipsetname') or an IP alias
	// definition. You can also specify an address range like
	// `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks
	// (entries are separated by comma). Please do not mix IPv4 and IPv6
	// addresses inside such lists.
	Dest *string `pulumi:"dest"`
	// Restrict TCP/UDP destination port. You can use
	// service names or simple numbers (0-65535), as defined in '/etc/
	// services'. Port ranges can be specified with '\d+:\d+', for example
	// `80:85`, and you can use comma separated list to match several ports or
	// ranges.
	Dport *string `pulumi:"dport"`
	// Enable rule
	Enabled *bool `pulumi:"enabled"`
	// Network interface name. You have to use network
	// configuration key names for VMs and containers ('net\d+'). Host related
	// rules can use arbitrary strings.
	Iface *string `pulumi:"iface"`
	// Log level for this rule (`emerg`, `alert`, `crit`,
	// `err`, `warning`, `notice`, `info`, `debug`, `nolog`).
	Log *string `pulumi:"log"`
	// Macro name. Use predefined standard macro
	// from <https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions>
	Macro *string `pulumi:"macro"`
	// Position of the rule in the list.
	Pos *int `pulumi:"pos"`
	// Restrict packet protocol. You can use protocol names
	// as defined in '/etc/protocols'.
	Proto *string `pulumi:"proto"`
	// Security group name
	SecurityGroup *string `pulumi:"securityGroup"`
	// Restrict packet source address. This can refer
	// to a single IP address, an IP set ('+ipsetname') or an IP alias
	// definition. You can also specify an address range like
	// `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks (
	// entries are separated by comma). Please do not mix IPv4 and IPv6
	// addresses inside such lists.
	Source *string `pulumi:"source"`
	// Restrict TCP/UDP source port. You can use
	// service names or simple numbers (0-65535), as defined in '/etc/
	// services'. Port ranges can be specified with '\d+:\d+', for example
	// `80:85`, and you can use comma separated list to match several ports or
	// ranges.
	Sport *string `pulumi:"sport"`
	// Rule type (`in`, `out`).
	Type *string `pulumi:"type"`
}

type FirewallSecurityGroupRuleArgs

type FirewallSecurityGroupRuleArgs struct {
	// Rule action (`ACCEPT`, `DROP`, `REJECT`).
	Action pulumi.StringPtrInput `pulumi:"action"`
	// Rule comment.
	Comment pulumi.StringPtrInput `pulumi:"comment"`
	// Restrict packet destination address. This can refer to
	// a single IP address, an IP set ('+ipsetname') or an IP alias
	// definition. You can also specify an address range like
	// `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks
	// (entries are separated by comma). Please do not mix IPv4 and IPv6
	// addresses inside such lists.
	Dest pulumi.StringPtrInput `pulumi:"dest"`
	// Restrict TCP/UDP destination port. You can use
	// service names or simple numbers (0-65535), as defined in '/etc/
	// services'. Port ranges can be specified with '\d+:\d+', for example
	// `80:85`, and you can use comma separated list to match several ports or
	// ranges.
	Dport pulumi.StringPtrInput `pulumi:"dport"`
	// Enable rule
	Enabled pulumi.BoolPtrInput `pulumi:"enabled"`
	// Network interface name. You have to use network
	// configuration key names for VMs and containers ('net\d+'). Host related
	// rules can use arbitrary strings.
	Iface pulumi.StringPtrInput `pulumi:"iface"`
	// Log level for this rule (`emerg`, `alert`, `crit`,
	// `err`, `warning`, `notice`, `info`, `debug`, `nolog`).
	Log pulumi.StringPtrInput `pulumi:"log"`
	// Macro name. Use predefined standard macro
	// from <https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions>
	Macro pulumi.StringPtrInput `pulumi:"macro"`
	// Position of the rule in the list.
	Pos pulumi.IntPtrInput `pulumi:"pos"`
	// Restrict packet protocol. You can use protocol names
	// as defined in '/etc/protocols'.
	Proto pulumi.StringPtrInput `pulumi:"proto"`
	// Security group name
	SecurityGroup pulumi.StringPtrInput `pulumi:"securityGroup"`
	// Restrict packet source address. This can refer
	// to a single IP address, an IP set ('+ipsetname') or an IP alias
	// definition. You can also specify an address range like
	// `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks (
	// entries are separated by comma). Please do not mix IPv4 and IPv6
	// addresses inside such lists.
	Source pulumi.StringPtrInput `pulumi:"source"`
	// Restrict TCP/UDP source port. You can use
	// service names or simple numbers (0-65535), as defined in '/etc/
	// services'. Port ranges can be specified with '\d+:\d+', for example
	// `80:85`, and you can use comma separated list to match several ports or
	// ranges.
	Sport pulumi.StringPtrInput `pulumi:"sport"`
	// Rule type (`in`, `out`).
	Type pulumi.StringPtrInput `pulumi:"type"`
}

func (FirewallSecurityGroupRuleArgs) ElementType

func (FirewallSecurityGroupRuleArgs) ToFirewallSecurityGroupRuleOutput

func (i FirewallSecurityGroupRuleArgs) ToFirewallSecurityGroupRuleOutput() FirewallSecurityGroupRuleOutput

func (FirewallSecurityGroupRuleArgs) ToFirewallSecurityGroupRuleOutputWithContext

func (i FirewallSecurityGroupRuleArgs) ToFirewallSecurityGroupRuleOutputWithContext(ctx context.Context) FirewallSecurityGroupRuleOutput

type FirewallSecurityGroupRuleArray

type FirewallSecurityGroupRuleArray []FirewallSecurityGroupRuleInput

func (FirewallSecurityGroupRuleArray) ElementType

func (FirewallSecurityGroupRuleArray) ToFirewallSecurityGroupRuleArrayOutput

func (i FirewallSecurityGroupRuleArray) ToFirewallSecurityGroupRuleArrayOutput() FirewallSecurityGroupRuleArrayOutput

func (FirewallSecurityGroupRuleArray) ToFirewallSecurityGroupRuleArrayOutputWithContext

func (i FirewallSecurityGroupRuleArray) ToFirewallSecurityGroupRuleArrayOutputWithContext(ctx context.Context) FirewallSecurityGroupRuleArrayOutput

type FirewallSecurityGroupRuleArrayInput

type FirewallSecurityGroupRuleArrayInput interface {
	pulumi.Input

	ToFirewallSecurityGroupRuleArrayOutput() FirewallSecurityGroupRuleArrayOutput
	ToFirewallSecurityGroupRuleArrayOutputWithContext(context.Context) FirewallSecurityGroupRuleArrayOutput
}

FirewallSecurityGroupRuleArrayInput is an input type that accepts FirewallSecurityGroupRuleArray and FirewallSecurityGroupRuleArrayOutput values. You can construct a concrete instance of `FirewallSecurityGroupRuleArrayInput` via:

FirewallSecurityGroupRuleArray{ FirewallSecurityGroupRuleArgs{...} }

type FirewallSecurityGroupRuleArrayOutput

type FirewallSecurityGroupRuleArrayOutput struct{ *pulumi.OutputState }

func (FirewallSecurityGroupRuleArrayOutput) ElementType

func (FirewallSecurityGroupRuleArrayOutput) Index

func (FirewallSecurityGroupRuleArrayOutput) ToFirewallSecurityGroupRuleArrayOutput

func (o FirewallSecurityGroupRuleArrayOutput) ToFirewallSecurityGroupRuleArrayOutput() FirewallSecurityGroupRuleArrayOutput

func (FirewallSecurityGroupRuleArrayOutput) ToFirewallSecurityGroupRuleArrayOutputWithContext

func (o FirewallSecurityGroupRuleArrayOutput) ToFirewallSecurityGroupRuleArrayOutputWithContext(ctx context.Context) FirewallSecurityGroupRuleArrayOutput

type FirewallSecurityGroupRuleInput

type FirewallSecurityGroupRuleInput interface {
	pulumi.Input

	ToFirewallSecurityGroupRuleOutput() FirewallSecurityGroupRuleOutput
	ToFirewallSecurityGroupRuleOutputWithContext(context.Context) FirewallSecurityGroupRuleOutput
}

FirewallSecurityGroupRuleInput is an input type that accepts FirewallSecurityGroupRuleArgs and FirewallSecurityGroupRuleOutput values. You can construct a concrete instance of `FirewallSecurityGroupRuleInput` via:

FirewallSecurityGroupRuleArgs{...}

type FirewallSecurityGroupRuleOutput

type FirewallSecurityGroupRuleOutput struct{ *pulumi.OutputState }

func (FirewallSecurityGroupRuleOutput) Action

Rule action (`ACCEPT`, `DROP`, `REJECT`).

func (FirewallSecurityGroupRuleOutput) Comment

Rule comment.

func (FirewallSecurityGroupRuleOutput) Dest

Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.

func (FirewallSecurityGroupRuleOutput) Dport

Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/ services'. Port ranges can be specified with '\d+:\d+', for example `80:85`, and you can use comma separated list to match several ports or ranges.

func (FirewallSecurityGroupRuleOutput) ElementType

func (FirewallSecurityGroupRuleOutput) Enabled

Enable rule

func (FirewallSecurityGroupRuleOutput) Iface

Network interface name. You have to use network configuration key names for VMs and containers ('net\d+'). Host related rules can use arbitrary strings.

func (FirewallSecurityGroupRuleOutput) Log

Log level for this rule (`emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `debug`, `nolog`).

func (FirewallSecurityGroupRuleOutput) Macro

Macro name. Use predefined standard macro from <https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_firewall_macro_definitions>

func (FirewallSecurityGroupRuleOutput) Pos

Position of the rule in the list.

func (FirewallSecurityGroupRuleOutput) Proto

Restrict packet protocol. You can use protocol names as defined in '/etc/protocols'.

func (FirewallSecurityGroupRuleOutput) SecurityGroup

Security group name

func (FirewallSecurityGroupRuleOutput) Source

Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like `20.34.101.207-201.3.9.99`, or a list of IP addresses and networks ( entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.

func (FirewallSecurityGroupRuleOutput) Sport

Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/ services'. Port ranges can be specified with '\d+:\d+', for example `80:85`, and you can use comma separated list to match several ports or ranges.

func (FirewallSecurityGroupRuleOutput) ToFirewallSecurityGroupRuleOutput

func (o FirewallSecurityGroupRuleOutput) ToFirewallSecurityGroupRuleOutput() FirewallSecurityGroupRuleOutput

func (FirewallSecurityGroupRuleOutput) ToFirewallSecurityGroupRuleOutputWithContext

func (o FirewallSecurityGroupRuleOutput) ToFirewallSecurityGroupRuleOutputWithContext(ctx context.Context) FirewallSecurityGroupRuleOutput

func (FirewallSecurityGroupRuleOutput) Type

Rule type (`in`, `out`).

type FirewallSecurityGroupState

type FirewallSecurityGroupState struct {
	// Rule comment.
	Comment pulumi.StringPtrInput
	// The ID of the container to manage the firewall for.
	ContainerId pulumi.IntPtrInput
	// Security group name.
	Name pulumi.StringPtrInput
	// The name of the node.
	NodeName pulumi.StringPtrInput
	// Firewall rule block (multiple blocks supported).
	Rules FirewallSecurityGroupRuleArrayInput
	// The ID of the VM to manage the firewall for.
	VmId pulumi.IntPtrInput
}

func (FirewallSecurityGroupState) ElementType

func (FirewallSecurityGroupState) ElementType() reflect.Type

type FirewallState

type FirewallState struct {
	// Enable ebtables rules cluster wide.
	Ebtables pulumi.BoolPtrInput
	// Enable or disable the log rate limit.
	Enabled pulumi.BoolPtrInput
	// The default input policy (`ACCEPT`, `DROP`, `REJECT`).
	InputPolicy pulumi.StringPtrInput
	// The log rate limit.
	LogRatelimit FirewallLogRatelimitPtrInput
	// The default output policy (`ACCEPT`, `DROP`, `REJECT`).
	OutputPolicy pulumi.StringPtrInput
}

func (FirewallState) ElementType

func (FirewallState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL