Skip to content

Commit

Permalink
Add firewall_alias examples & docs
Browse files Browse the repository at this point in the history
  • Loading branch information
browningluke committed Jul 30, 2023
1 parent c45f950 commit 129c4dd
Show file tree
Hide file tree
Showing 5 changed files with 184 additions and 0 deletions.
31 changes: 31 additions & 0 deletions docs/data-sources/firewall_alias.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
page_title: "opnsense_firewall_alias Data Source - terraform-provider-opnsense"
subcategory: Firewall
description: |-
Aliases are named lists of networks, hosts or ports that can be used as one entity by selecting the alias name in the various supported sections of the firewall. These aliases are particularly useful to condense firewall rules and minimize changes.
---

# opnsense_firewall_alias (Data Source)

Aliases are named lists of networks, hosts or ports that can be used as one entity by selecting the alias name in the various supported sections of the firewall. These aliases are particularly useful to condense firewall rules and minimize changes.

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `id` (String) UUID of the resource.

### Read-Only

- `categories` (Set of String) Set of category IDs to apply.
- `content` (Set of String) The content of the alias. Enter ISO 3166-1 country codes when `type = "geoip"` (e.g. `["CA", "FR"]`). Enter `__<int>_network`, or alias when `type = "networkgroup"` (e.g. `["__wan_network", "otheralias"]`). Enter OpenVPN group when `type = "authgroup"` (e.g. `["admins"]`). Set to `[]` when `type = "external"`.
- `description` (String) Optional description here for your reference (not parsed).
- `enabled` (Boolean) Enable this firewall alias.
- `interface` (String) Choose on which interface this alias applies. Only applies (and must be set) when `type = "dynipv6host"`.
- `ip_protocol` (String) Select the Internet Protocol version this alias applies to. Available values: `IPv4`, `IPv6`. Only applies when `type = "asn"`, `type = "geoip"`, or `type = "external"`.
- `name` (String) The name must start with a letter or single underscore, be less than 32 characters and only consist of alphanumeric characters or underscores. Aliases can be nested using this name.
- `stats` (Boolean) Whether to maintain a set of counters for each table entry.
- `type` (String) The type of alias.
- `update_freq` (Number) The frequency that the list will be refreshed, in days (e.g. for 30 hours, enter `1.25`). Only applies (and must be set) when `type = "urltable"`.

74 changes: 74 additions & 0 deletions docs/resources/firewall_alias.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
page_title: "opnsense_firewall_alias Resource - terraform-provider-opnsense"
subcategory: Firewall
description: |-
Aliases are named lists of networks, hosts or ports that can be used as one entity by selecting the alias name in the various supported sections of the firewall. These aliases are particularly useful to condense firewall rules and minimize changes.
---

# opnsense_firewall_alias (Resource)

Aliases are named lists of networks, hosts or ports that can be used as one entity by selecting the alias name in the various supported sections of the firewall. These aliases are particularly useful to condense firewall rules and minimize changes.

## Example Usage

```terraform
// Network example
resource "opnsense_firewall_alias" "example_one" {
name = "example_one"
type = "network"
content = [
"10.8.0.1/24",
"10.8.0.2/24"
]
stats = true
description = "Example"
}
// With category
resource "opnsense_firewall_category" "example_one" {
name = "example"
color = "ffaa00"
}
resource "opnsense_firewall_alias" "example_two" {
name = "example_two"
type = "geoip"
content = [
"FR",
"CA",
]
categories = [
opnsense_firewall_category.example_one.id
]
description = "Example two"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `name` (String) The name must start with a letter or single underscore, be less than 32 characters and only consist of alphanumeric characters or underscores. Aliases can be nested using this name.
- `type` (String) The type of alias.

### Optional

- `categories` (Set of String) Set of category IDs to apply. Defaults to `[]`.
- `content` (Set of String) The content of the alias. Enter ISO 3166-1 country codes when `type = "geoip"` (e.g. `["CA", "FR"]`). Enter `__<int>_network`, or alias when `type = "networkgroup"` (e.g. `["__wan_network", "otheralias"]`). Enter OpenVPN group when `type = "authgroup"` (e.g. `["admins"]`). Set to `[]` when `type = "external"`. Defaults to `[]`.
- `description` (String) Optional description here for your reference (not parsed).
- `enabled` (Boolean) Enable this firewall alias. Defaults to `true`.
- `interface` (String) Choose on which interface this alias applies. Only applies (and must be set) when `type = "dynipv6host"`. Defaults to `""`.
- `ip_protocol` (String) Select the Internet Protocol version this alias applies to. Available values: `IPv4`, `IPv6`. Only applies when `type = "asn"`, `type = "geoip"`, or `type = "external"`. Defaults to `IPv4`.
- `stats` (Boolean) Whether to maintain a set of counters for each table entry.
- `update_freq` (Number) The frequency that the list will be refreshed, in days (e.g. for 30 hours, enter `1.25`). Only applies (and must be set) when `type = "urltable"`. Defaults to `-1`.

### Read-Only

- `id` (String) UUID of the resource.

35 changes: 35 additions & 0 deletions examples/resources/opnsense_firewall_alias/resource.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Network example
resource "opnsense_firewall_alias" "example_one" {
name = "example_one"

type = "network"
content = [
"10.8.0.1/24",
"10.8.0.2/24"
]

stats = true
description = "Example"
}

// With category
resource "opnsense_firewall_category" "example_one" {
name = "example"
color = "ffaa00"
}

resource "opnsense_firewall_alias" "example_two" {
name = "example_two"

type = "geoip"
content = [
"FR",
"CA",
]

categories = [
opnsense_firewall_category.example_one.id
]

description = "Example two"
}
20 changes: 20 additions & 0 deletions templates/data-sources/firewall_alias.md.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
page_title: "{{.Name}} {{.Type}} - {{.RenderedProviderName}}"
subcategory: Firewall
description: |-
{{ .Description | plainmarkdown | trimspace | prefixlines " " }}
---

# {{.Name}} ({{.Type}})

{{ .Description | trimspace }}

{{ .SchemaMarkdown | trimspace }}

{{ if .HasImport -}}
## Import

Import is supported using the following syntax:

{{ printf "{{codefile \"shell\" %q}}" .ImportFile }}
{{- end }}
24 changes: 24 additions & 0 deletions templates/resources/firewall_alias.md.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
page_title: "{{.Name}} {{.Type}} - {{.RenderedProviderName}}"
subcategory: Firewall
description: |-
{{ .Description | plainmarkdown | trimspace | prefixlines " " }}
---

# {{.Name}} ({{.Type}})

{{ .Description | trimspace }}

## Example Usage

{{ tffile (printf "%s%s%s" "examples/resources/" .Name "/resource.tf") }}

{{ .SchemaMarkdown | trimspace }}

{{ if .HasImport -}}
## Import

Import is supported using the following syntax:

{{ printf "{{codefile \"shell\" %q}}" .ImportFile }}
{{- end }}

0 comments on commit 129c4dd

Please sign in to comment.