Skip to content

Commit

Permalink
Resolves issues #269 and #284 (#346)
Browse files Browse the repository at this point in the history
  • Loading branch information
seconroy authored Oct 19, 2024
1 parent 3aec398 commit 8b5a6c1
Show file tree
Hide file tree
Showing 28 changed files with 311 additions and 77 deletions.
1 change: 1 addition & 0 deletions docs/data-sources/transport_management_vpn_feature.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ Read-Only:

Read-Only:

- `gateway` (String) Gateway
- `nat` (String) IPv6 Nat
- `nat_variable` (String) Variable name
- `next_hops` (Attributes List) IPv6 Route Gateway Next Hop (see [below for nested schema](#nestedatt--ipv6_static_routes--next_hops))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ data "sdwan_transport_management_vpn_interface_ethernet_feature" "example" {
- `ipv4_address_variable` (String) Variable name
- `ipv4_auto_detect_bandwidth` (Boolean) Interface auto detect bandwidth
- `ipv4_auto_detect_bandwidth_variable` (String) Variable name
- `ipv4_configuration_type` (String) IPv4 Configuration Type
- `ipv4_dhcp_distance` (Number) DHCP Distance
- `ipv4_dhcp_distance_variable` (String) Variable name
- `ipv4_dhcp_helper` (Set of String) List of DHCP IPv4 helper addresses (min 1, max 8)
Expand All @@ -67,6 +68,7 @@ data "sdwan_transport_management_vpn_interface_ethernet_feature" "example" {
- `ipv4_subnet_mask_variable` (String) Variable name
- `ipv6_address` (String) IPv6 Address Secondary
- `ipv6_address_variable` (String) Variable name
- `ipv6_configuration_type` (String) IPv6 Configuration Type
- `load_interval` (Number) Interval for interface load calculation
- `load_interval_variable` (String) Variable name
- `mac_address` (String) MAC Address
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ data "sdwan_transport_wan_vpn_interface_ethernet_feature" "example" {
- `iperf_server_variable` (String) Variable name
- `ipv4_address` (String) IP Address
- `ipv4_address_variable` (String) Variable name
- `ipv4_configuration_type` (String) IPv4 Configuration Type
- `ipv4_dhcp_distance` (Number) DHCP Distance
- `ipv4_dhcp_distance_variable` (String) Variable name
- `ipv4_dhcp_helper` (Set of String) List of DHCP IPv4 helper addresses (min 1, max 8)
Expand All @@ -75,6 +76,7 @@ data "sdwan_transport_wan_vpn_interface_ethernet_feature" "example" {
- `ipv4_subnet_mask_variable` (String) Variable name
- `ipv6_address` (String) IPv6 Address Secondary
- `ipv6_address_variable` (String) Variable name
- `ipv6_configuration_type` (String) IPv6 Configuration Type
- `ipv6_dhcp_secondary_address` (Attributes List) secondary IPv6 addresses (see [below for nested schema](#nestedatt--ipv6_dhcp_secondary_address))
- `ipv6_secondary_addresses` (Attributes List) Static secondary IPv6 addresses (see [below for nested schema](#nestedatt--ipv6_secondary_addresses))
- `load_interval` (Number) Interval for interface load calculation
Expand Down
12 changes: 8 additions & 4 deletions docs/resources/transport_management_vpn_feature.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ resource "sdwan_transport_management_vpn_feature" "example" {
]
ipv6_static_routes = [
{
prefix = "2002::/16"
prefix = "2002::/16"
gateway = "next_hop"
next_hops = [
{
address = "2001:0:0:1::1"
Expand Down Expand Up @@ -125,11 +126,13 @@ Optional:

Optional:

- `nat` (String) IPv6 Nat
- `gateway` (String) Gateway
- Choices: `next_hop`, `null0`, `nat`
- `nat` (String) IPv6 Nat, Attribute conditional on `gateway` being equal to `nat`
- Choices: `NAT64`, `NAT66`
- `nat_variable` (String) Variable name
- `next_hops` (Attributes List) IPv6 Route Gateway Next Hop (see [below for nested schema](#nestedatt--ipv6_static_routes--next_hops))
- `null0` (Boolean) IPv6 Route Gateway Next Hop
- `next_hops` (Attributes List) IPv6 Route Gateway Next Hop, Attribute conditional on `gateway` being equal to `next_hop` (see [below for nested schema](#nestedatt--ipv6_static_routes--next_hops))
- `null0` (Boolean) IPv6 Route Gateway Next Hop, Attribute conditional on `gateway` being equal to `null0`
- `prefix` (String) Prefix
- `prefix_variable` (String) Variable name

Expand All @@ -142,6 +145,7 @@ Optional:
- `address_variable` (String) Variable name
- `administrative_distance` (Number) Administrative distance
- Range: `1`-`254`
- Default value: `1`
- `administrative_distance_variable` (String) Variable name


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ resource "sdwan_transport_management_vpn_interface_ethernet_feature" "example" {
shutdown = true
interface_name = "GigabitEthernet1"
interface_description = "Transport Management VPN Interface Ethernet"
ipv4_configuration_type = "static"
ipv4_address = "1.2.3.4"
ipv4_subnet_mask = "0.0.0.0"
ipv4_secondary_addresses = [
Expand All @@ -34,6 +35,7 @@ resource "sdwan_transport_management_vpn_interface_ethernet_feature" "example" {
ipv4_dhcp_helper = ["1.2.3.4"]
ipv4_iperf_server = "example"
ipv4_auto_detect_bandwidth = false
ipv6_configuration_type = "static"
ipv6_address = "2001:0:0:1::/64"
arp_entries = [
{
Expand Down Expand Up @@ -76,7 +78,7 @@ resource "sdwan_transport_management_vpn_interface_ethernet_feature" "example" {
- `duplex` (String) Duplex mode
- Choices: `full`, `half`, `auto`
- `duplex_variable` (String) Variable name
- `enable_dhcpv6` (Boolean) Enable DHCPv6
- `enable_dhcpv6` (Boolean) Enable DHCPv6, Attribute conditional on `ipv6_configuration_type` being equal to `dynamic`
- `feature_profile_id` (String) Feature Profile ID
- `icmp_redirect_disable` (Boolean) ICMP/ICMPv6 Redirect Disable
- Default value: `true`
Expand All @@ -96,24 +98,29 @@ resource "sdwan_transport_management_vpn_interface_ethernet_feature" "example" {
- Range: `576`-`9216`
- Default value: `1500`
- `ip_mtu_variable` (String) Variable name
- `ipv4_address` (String) IP Address
- `ipv4_address` (String) IP Address, Attribute conditional on `ipv4_configuration_type` being equal to `static`
- `ipv4_address_variable` (String) Variable name
- `ipv4_auto_detect_bandwidth` (Boolean) Interface auto detect bandwidth
- Default value: `false`
- `ipv4_auto_detect_bandwidth_variable` (String) Variable name
- `ipv4_dhcp_distance` (Number) DHCP Distance
- `ipv4_configuration_type` (String) IPv4 Configuration Type
- Choices: `dynamic`, `static`
- `ipv4_dhcp_distance` (Number) DHCP Distance, Attribute conditional on `ipv4_configuration_type` being equal to `dynamic`
- Range: `1`-`65536`
- Default value: `1`
- `ipv4_dhcp_distance_variable` (String) Variable name
- `ipv4_dhcp_helper` (Set of String) List of DHCP IPv4 helper addresses (min 1, max 8)
- `ipv4_dhcp_helper_variable` (String) Variable name
- `ipv4_iperf_server` (String) Iperf server for auto bandwidth detect
- `ipv4_iperf_server_variable` (String) Variable name
- `ipv4_secondary_addresses` (Attributes List) Secondary IpV4 Addresses (see [below for nested schema](#nestedatt--ipv4_secondary_addresses))
- `ipv4_subnet_mask` (String) Subnet Mask
- `ipv4_secondary_addresses` (Attributes List) Secondary IpV4 Addresses, Attribute conditional on `ipv4_configuration_type` being equal to `static` (see [below for nested schema](#nestedatt--ipv4_secondary_addresses))
- `ipv4_subnet_mask` (String) Subnet Mask, Attribute conditional on `ipv4_configuration_type` being equal to `static`
- Choices: `255.255.255.255`, `255.255.255.254`, `255.255.255.252`, `255.255.255.248`, `255.255.255.240`, `255.255.255.224`, `255.255.255.192`, `255.255.255.128`, `255.255.255.0`, `255.255.254.0`, `255.255.252.0`, `255.255.248.0`, `255.255.240.0`, `255.255.224.0`, `255.255.192.0`, `255.255.128.0`, `255.255.0.0`, `255.254.0.0`, `255.252.0.0`, `255.240.0.0`, `255.224.0.0`, `255.192.0.0`, `255.128.0.0`, `255.0.0.0`, `254.0.0.0`, `252.0.0.0`, `248.0.0.0`, `240.0.0.0`, `224.0.0.0`, `192.0.0.0`, `128.0.0.0`, `0.0.0.0`
- `ipv4_subnet_mask_variable` (String) Variable name
- `ipv6_address` (String) IPv6 Address Secondary
- `ipv6_address` (String) IPv6 Address Secondary, Attribute conditional on `ipv6_configuration_type` being equal to `static`
- `ipv6_address_variable` (String) Variable name
- `ipv6_configuration_type` (String) IPv6 Configuration Type
- Choices: `dynamic`, `static`, `none`
- `load_interval` (Number) Interval for interface load calculation
- Range: `30`-`600`
- Default value: `30`
Expand Down
23 changes: 15 additions & 8 deletions docs/resources/transport_wan_vpn_interface_ethernet_feature.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ resource "sdwan_transport_wan_vpn_interface_ethernet_feature" "example" {
shutdown = true
interface_name = "GigabitEthernet1"
interface_description = "WAN"
ipv4_configuration_type = "static"
ipv4_address = "1.2.3.4"
ipv4_subnet_mask = "0.0.0.0"
ipv4_secondary_addresses = [
Expand All @@ -32,6 +33,7 @@ resource "sdwan_transport_wan_vpn_interface_ethernet_feature" "example" {
}
]
ipv4_dhcp_helper = ["1.2.3.4"]
ipv6_configuration_type = "static"
iperf_server = "example"
block_non_source_ip = false
service_provider = "example"
Expand Down Expand Up @@ -163,7 +165,7 @@ resource "sdwan_transport_wan_vpn_interface_ethernet_feature" "example" {
- `duplex` (String) Duplex mode
- Choices: `full`, `half`, `auto`
- `duplex_variable` (String) Variable name
- `enable_dhcpv6` (Boolean) Enable DHCPv6
- `enable_dhcpv6` (Boolean) Enable DHCPv6, Attribute conditional on `ipv6_configuration_type` being equal to `dynamic`
- `gre_tunnel_source_ip` (String) GRE tunnel source IP
- `gre_tunnel_source_ip_variable` (String) Variable name
- `icmp_redirect_disable` (Boolean) ICMP/ICMPv6 Redirect Disable
Expand All @@ -186,21 +188,26 @@ resource "sdwan_transport_wan_vpn_interface_ethernet_feature" "example" {
- `ip_mtu_variable` (String) Variable name
- `iperf_server` (String) Iperf server for auto bandwidth detect
- `iperf_server_variable` (String) Variable name
- `ipv4_address` (String) IP Address
- `ipv4_address` (String) IP Address, Attribute conditional on `ipv4_configuration_type` being equal to `static`
- `ipv4_address_variable` (String) Variable name
- `ipv4_dhcp_distance` (Number) DHCP Distance
- `ipv4_configuration_type` (String) IPv4 Configuration Type
- Choices: `dynamic`, `static`
- `ipv4_dhcp_distance` (Number) DHCP Distance, Attribute conditional on `ipv4_configuration_type` being equal to `dynamic`
- Range: `1`-`65536`
- Default value: `1`
- `ipv4_dhcp_distance_variable` (String) Variable name
- `ipv4_dhcp_helper` (Set of String) List of DHCP IPv4 helper addresses (min 1, max 8)
- `ipv4_dhcp_helper_variable` (String) Variable name
- `ipv4_secondary_addresses` (Attributes List) Secondary IpV4 Addresses (see [below for nested schema](#nestedatt--ipv4_secondary_addresses))
- `ipv4_subnet_mask` (String) Subnet Mask
- `ipv4_secondary_addresses` (Attributes List) Secondary IpV4 Addresses, Attribute conditional on `ipv4_configuration_type` being equal to `static` (see [below for nested schema](#nestedatt--ipv4_secondary_addresses))
- `ipv4_subnet_mask` (String) Subnet Mask, Attribute conditional on `ipv4_configuration_type` being equal to `static`
- Choices: `255.255.255.255`, `255.255.255.254`, `255.255.255.252`, `255.255.255.248`, `255.255.255.240`, `255.255.255.224`, `255.255.255.192`, `255.255.255.128`, `255.255.255.0`, `255.255.254.0`, `255.255.252.0`, `255.255.248.0`, `255.255.240.0`, `255.255.224.0`, `255.255.192.0`, `255.255.128.0`, `255.255.0.0`, `255.254.0.0`, `255.252.0.0`, `255.240.0.0`, `255.224.0.0`, `255.192.0.0`, `255.128.0.0`, `255.0.0.0`, `254.0.0.0`, `252.0.0.0`, `248.0.0.0`, `240.0.0.0`, `224.0.0.0`, `192.0.0.0`, `128.0.0.0`, `0.0.0.0`
- `ipv4_subnet_mask_variable` (String) Variable name
- `ipv6_address` (String) IPv6 Address Secondary
- `ipv6_address` (String) IPv6 Address Secondary, Attribute conditional on `ipv6_configuration_type` being equal to `static`
- `ipv6_address_variable` (String) Variable name
- `ipv6_dhcp_secondary_address` (Attributes List) secondary IPv6 addresses (see [below for nested schema](#nestedatt--ipv6_dhcp_secondary_address))
- `ipv6_secondary_addresses` (Attributes List) Static secondary IPv6 addresses (see [below for nested schema](#nestedatt--ipv6_secondary_addresses))
- `ipv6_configuration_type` (String) IPv6 Configuration Type
- Choices: `dynamic`, `static`, `none`
- `ipv6_dhcp_secondary_address` (Attributes List) secondary IPv6 addresses, Attribute conditional on `ipv6_configuration_type` being equal to `dynamic` (see [below for nested schema](#nestedatt--ipv6_dhcp_secondary_address))
- `ipv6_secondary_addresses` (Attributes List) Static secondary IPv6 addresses, Attribute conditional on `ipv6_configuration_type` being equal to `static` (see [below for nested schema](#nestedatt--ipv6_secondary_addresses))
- `load_interval` (Number) Interval for interface load calculation
- Range: `30`-`600`
- Default value: `30`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ resource "sdwan_transport_management_vpn_feature" "example" {
]
ipv6_static_routes = [
{
prefix = "2002::/16"
prefix = "2002::/16"
gateway = "next_hop"
next_hops = [
{
address = "2001:0:0:1::1"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ resource "sdwan_transport_management_vpn_interface_ethernet_feature" "example" {
shutdown = true
interface_name = "GigabitEthernet1"
interface_description = "Transport Management VPN Interface Ethernet"
ipv4_configuration_type = "static"
ipv4_address = "1.2.3.4"
ipv4_subnet_mask = "0.0.0.0"
ipv4_secondary_addresses = [
Expand All @@ -17,6 +18,7 @@ resource "sdwan_transport_management_vpn_interface_ethernet_feature" "example" {
ipv4_dhcp_helper = ["1.2.3.4"]
ipv4_iperf_server = "example"
ipv4_auto_detect_bandwidth = false
ipv6_configuration_type = "static"
ipv6_address = "2001:0:0:1::/64"
arp_entries = [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ resource "sdwan_transport_wan_vpn_interface_ethernet_feature" "example" {
shutdown = true
interface_name = "GigabitEthernet1"
interface_description = "WAN"
ipv4_configuration_type = "static"
ipv4_address = "1.2.3.4"
ipv4_subnet_mask = "0.0.0.0"
ipv4_secondary_addresses = [
Expand All @@ -15,6 +16,7 @@ resource "sdwan_transport_wan_vpn_interface_ethernet_feature" "example" {
}
]
ipv4_dhcp_helper = ["1.2.3.4"]
ipv6_configuration_type = "static"
iperf_server = "example"
block_non_source_ip = false
service_provider = "example"
Expand Down
21 changes: 21 additions & 0 deletions gen/definitions/profile_parcels/transport_management_vpn.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,37 +66,58 @@ attributes:
- model_name: distance
tf_name: administrative_distance
example: 1
default_value: 1
default_value_present: true
- model_name: distance
tf_name: administrative_distance
exclude_test: true
conditional_attribute:
name: gateway
value: null0
default_value: 1
default_value_present: true
example: 1
- model_name: ipv6Route
tf_name: ipv6_static_routes
attributes:
- model_name: prefix
id: true
example: 2002::/16
- tf_name: gateway
type: String
tf_only: true
description: Gateway
enum_values: [next_hop, null0, nat]
example: next_hop
- model_name: nextHop
tf_name: next_hops
data_path: [oneOfIpRoute, nextHopContainer]
mandatory: true
conditional_attribute:
name: gateway
value: next_hop
attributes:
- model_name: address
id: true
example: 2001:0:0:1::1
- model_name: distance
tf_name: administrative_distance
example: 1
default_value: 1
default_value_present: true
- model_name: null0
data_path: [oneOfIpRoute]
exclude_test: true
conditional_attribute:
name: gateway
value: null0
example: true
- model_name: nat
data_path: [oneOfIpRoute]
exclude_test: true
conditional_attribute:
name: gateway
value: nat
example: NAT64

test_prerequisites: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,46 @@ attributes:
- model_name: description
tf_name: interface_description
example: Transport Management VPN Interface Ethernet

- tf_name: ipv4_configuration_type
type: String
tf_only: true
description: IPv4 Configuration Type
enum_values: [dynamic, static]
example: static

- model_name: dynamicDhcpDistance
tf_name: ipv4_dhcp_distance
data_path: [intfIpAddress, dynamic]
conditional_attribute:
name: ipv4_configuration_type
value: dynamic
default_value_present: true
default_value: 1
example: 1
exclude_test: true
- model_name: ipAddress
tf_name: ipv4_address
data_path: [intfIpAddress, static, staticIpV4AddressPrimary]
conditional_attribute:
name: ipv4_configuration_type
value: static
example: 1.2.3.4
minimum_test_value: '"1.2.3.4"'
- model_name: subnetMask
tf_name: ipv4_subnet_mask
data_path: [intfIpAddress, static, staticIpV4AddressPrimary]
conditional_attribute:
name: ipv4_configuration_type
value: static
example: 0.0.0.0
minimum_test_value: '"0.0.0.0"'
- model_name: staticIpV4AddressSecondary
tf_name: ipv4_secondary_addresses
data_path: [intfIpAddress, static]
conditional_attribute:
name: ipv4_configuration_type
value: static
attributes:
- model_name: ipAddress
tf_name: address
Expand All @@ -59,15 +81,29 @@ attributes:
- model_name: autoDetectBandwidth
tf_name: ipv4_auto_detect_bandwidth
example: false

- tf_name: ipv6_configuration_type
type: String
tf_only: true
description: IPv6 Configuration Type
enum_values: [dynamic, static, none]
example: static

- model_name: dhcpClient
tf_name: enable_dhcpv6
data_path: [intfIpV6Address, dynamic]
type: Bool
conditional_attribute:
name: ipv6_configuration_type
value: dynamic
example: true
exclude_test: true
- model_name: address
tf_name: ipv6_address
data_path: [intfIpV6Address, static, primaryIpV6Address]
conditional_attribute:
name: ipv6_configuration_type
value: static
example: 2001:0:0:1::/64
- model_name: arp
tf_name: arp_entries
Expand Down
Loading

0 comments on commit 8b5a6c1

Please sign in to comment.