From 999c1ce11ba20d86b509126825192ce2554d6fca Mon Sep 17 00:00:00 2001 From: Sean Conroy <141843633+seconroy@users.noreply.github.com> Date: Fri, 6 Sep 2024 16:35:46 +0100 Subject: [PATCH] Resolve issues #321, #323, #324 and #325 (#328) --- CHANGELOG.md | 1 - docs/guides/changelog.md | 1 - .../service_object_tracker_feature.md | 4 +-- .../service_object_tracker_group_feature.md | 4 +-- ...transport_wan_vpn_interface_gre_feature.md | 8 ++--- ...ansport_wan_vpn_interface_ipsec_feature.md | 22 +++++++------- ..._wan_vpn_interface_t1_e1_serial_feature.md | 2 +- .../service_object_tracker.yaml | 2 +- .../service_object_tracker_group.yaml | 2 +- .../transport_wan_vpn_interface_gre.yaml | 12 +++++--- .../transport_wan_vpn_interface_ipsec.yaml | 30 ++++++++++++------- ...nsport_wan_vpn_interface_t1_e1_serial.yaml | 3 +- ...port_wan_vpn_interface_gre_feature_test.go | 4 --- ...rt_wan_vpn_interface_ipsec_feature_test.go | 10 ------- ...vpn_interface_t1_e1_serial_feature_test.go | 1 - ...ce_sdwan_service_object_tracker_feature.go | 2 +- ...an_service_object_tracker_group_feature.go | 2 +- ...transport_wan_vpn_interface_gre_feature.go | 8 ++--- ...port_wan_vpn_interface_gre_feature_test.go | 4 --- ...ansport_wan_vpn_interface_ipsec_feature.go | 20 ++++++------- ...rt_wan_vpn_interface_ipsec_feature_test.go | 10 ------- ..._wan_vpn_interface_t1_e1_serial_feature.go | 2 +- ...vpn_interface_t1_e1_serial_feature_test.go | 1 - templates/guides/changelog.md.tmpl | 1 - 24 files changed, 69 insertions(+), 87 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a967bcd2..bd7d7848 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,7 +43,6 @@ - Fix issue when reading deleted `sdwan_configuration_group` resource, [link](https://github.com/CiscoDevNet/terraform-provider-sdwan/issues/297) - BREAKING CHANGE: Rename `service_lan_vpn_profile_parcel_id` attribute of `sdwan_service_lan_vpn_interface_ethernet_feature`, `sdwan_service_lan_vpn_interface_gre_feature`, `sdwan_service_lan_vpn_interface_ipsec_feature` and `sdwan_service_lan_vpn_interface_svi_feature` resource to `service_lan_vpn_feature_id` - BREAKING CHANGE: Rename `transport_management_vpn_profile_parcel_id` attribute of `sdwan_transport_management_vpn_interface_ethernet_feature` resource to `transport_management_vpn_feature_id` -- - BREAKING CHANGE: Rename `transport_wan_vpn_profile_parcel_id` attribute of `sdwan_transport_wan_vpn_interface_cellular_feature`, `sdwan_transport_wan_vpn_interface_ethernet_feature`, `sdwan_transport_wan_vpn_interface_gre_feature`, `sdwan_transport_wan_vpn_interface_ipsec_feature` and `sdwan_transport_wan_vpn_interface_t1_e1_serial_feature` resource to `transport_wan_vpn_feature_id` ## 0.3.13 diff --git a/docs/guides/changelog.md b/docs/guides/changelog.md index 23f841b2..e264f946 100644 --- a/docs/guides/changelog.md +++ b/docs/guides/changelog.md @@ -52,7 +52,6 @@ description: |- - Fix issue when reading deleted `sdwan_configuration_group` resource, [link](https://github.com/CiscoDevNet/terraform-provider-sdwan/issues/297) - BREAKING CHANGE: Rename `service_lan_vpn_profile_parcel_id` attribute of `sdwan_service_lan_vpn_interface_ethernet_feature`, `sdwan_service_lan_vpn_interface_gre_feature`, `sdwan_service_lan_vpn_interface_ipsec_feature` and `sdwan_service_lan_vpn_interface_svi_feature` resource to `service_lan_vpn_feature_id` - BREAKING CHANGE: Rename `transport_management_vpn_profile_parcel_id` attribute of `sdwan_transport_management_vpn_interface_ethernet_feature` resource to `transport_management_vpn_feature_id` -- - BREAKING CHANGE: Rename `transport_wan_vpn_profile_parcel_id` attribute of `sdwan_transport_wan_vpn_interface_cellular_feature`, `sdwan_transport_wan_vpn_interface_ethernet_feature`, `sdwan_transport_wan_vpn_interface_gre_feature`, `sdwan_transport_wan_vpn_interface_ipsec_feature` and `sdwan_transport_wan_vpn_interface_t1_e1_serial_feature` resource to `transport_wan_vpn_feature_id` ## 0.3.13 diff --git a/docs/resources/service_object_tracker_feature.md b/docs/resources/service_object_tracker_feature.md index 04692c9e..c639c956 100644 --- a/docs/resources/service_object_tracker_feature.md +++ b/docs/resources/service_object_tracker_feature.md @@ -32,8 +32,6 @@ resource "sdwan_service_object_tracker_feature" "example" { - `feature_profile_id` (String) Feature Profile ID - `name` (String) The name of the Feature -- `object_tracker_id` (Number) Object tracker ID - - Range: `1`-`1000` - `object_tracker_type` (String) objectTrackerType:Interface SIG Route - Choices: `Interface`, `SIG`, `Route` @@ -42,6 +40,8 @@ resource "sdwan_service_object_tracker_feature" "example" { - `description` (String) The description of the Feature - `interface` (String) interface name - `interface_variable` (String) Variable name +- `object_tracker_id` (Number) Object tracker ID + - Range: `1`-`1000` - `object_tracker_id_variable` (String) Variable name - `route_ip` (String) IP address - `route_ip_variable` (String) Variable name diff --git a/docs/resources/service_object_tracker_group_feature.md b/docs/resources/service_object_tracker_group_feature.md index b1ce4386..d5cbd4f1 100644 --- a/docs/resources/service_object_tracker_group_feature.md +++ b/docs/resources/service_object_tracker_group_feature.md @@ -36,12 +36,12 @@ resource "sdwan_service_object_tracker_group_feature" "example" { - `feature_profile_id` (String) Feature Profile ID - `name` (String) The name of the Feature -- `object_tracker_id` (Number) Object ID - - Range: `1`-`1000` ### Optional - `description` (String) The description of the Feature +- `object_tracker_id` (Number) Object ID + - Range: `1`-`1000` - `object_tracker_id_variable` (String) Variable name - `reachable` (String) tracker ref list criteria boolean and or - Choices: `and`, `or` diff --git a/docs/resources/transport_wan_vpn_interface_gre_feature.md b/docs/resources/transport_wan_vpn_interface_gre_feature.md index dfff28da..723306a6 100644 --- a/docs/resources/transport_wan_vpn_interface_gre_feature.md +++ b/docs/resources/transport_wan_vpn_interface_gre_feature.md @@ -40,11 +40,7 @@ resource "sdwan_transport_wan_vpn_interface_gre_feature" "example" { ### Required - `feature_profile_id` (String) Feature Profile ID -- `interface_name` (String) Interface name (1..255) -- `ipv4_address` (String) -- `ipv4_subnet_mask` (String) - 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` - `name` (String) The name of the Feature -- `tunnel_destination_ipv4_address` (String) Tunnel destination IP Address ### Optional @@ -57,12 +53,15 @@ resource "sdwan_transport_wan_vpn_interface_gre_feature" "example" { - `description` (String) The description of the Feature - `interface_description` (String) Interface description - `interface_description_variable` (String) Variable name +- `interface_name` (String) Interface name (1..255) - `interface_name_variable` (String) Variable name - `ip_mtu` (Number) Interface MTU <576..9976>, in bytes - Range: `576`-`9976` - Default value: `1500` - `ip_mtu_variable` (String) Variable name +- `ipv4_address` (String) - `ipv4_address_variable` (String) Variable name +- `ipv4_subnet_mask` (String) - 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 - `shutdown` (Boolean) Administrative state - Default value: `false` @@ -71,6 +70,7 @@ resource "sdwan_transport_wan_vpn_interface_gre_feature" "example" { - Range: `500`-`1460` - `tcp_mss_variable` (String) Variable name - `transport_wan_vpn_feature_id` (String) Transport WAN VPN Feature ID +- `tunnel_destination_ipv4_address` (String) Tunnel destination IP Address - `tunnel_destination_ipv4_address_variable` (String) Variable name - `tunnel_route_via_loopback` (String) <1..32 characters> Interface name, can't be Loopback interface - `tunnel_route_via_loopback_variable` (String) Variable name diff --git a/docs/resources/transport_wan_vpn_interface_ipsec_feature.md b/docs/resources/transport_wan_vpn_interface_ipsec_feature.md index 489b91e1..801b9706 100644 --- a/docs/resources/transport_wan_vpn_interface_ipsec_feature.md +++ b/docs/resources/transport_wan_vpn_interface_ipsec_feature.md @@ -57,22 +57,13 @@ resource "sdwan_transport_wan_vpn_interface_ipsec_feature" "example" { ### Required -- `application_tunnel_type` (String) Enable Application Tunnel Type - - Choices: `none`, `sig` - `feature_profile_id` (String) Feature Profile ID -- `ike_preshared_key` (String) Use preshared key to authenticate IKE peer -- `interface_name` (String) Interface name: IPsec when present -- `ipv4_address` (String) -- `ipv4_subnet_mask` (String) - 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` - `name` (String) The name of the Feature -- `tunnel_destination_ipv4_address` (String) -- `tunnel_destination_ipv4_subnet_mask` (String) - 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` -- `tunnel_source_interface` (String) <1..32 characters> Interface name: ge0/<0-..> or ge0/<0-..>.vlanid -- `tunnel_source_ipv4_address` (String) -- `tunnel_source_ipv4_subnet_mask` (String) - 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` ### Optional +- `application_tunnel_type` (String) Enable Application Tunnel Type + - Choices: `none`, `sig` - `application_tunnel_type_variable` (String) Variable name - `clear_dont_fragment` (Boolean) Enable clear dont fragment (Currently Only SDWAN Tunnel Interface) - Default value: `false` @@ -102,6 +93,7 @@ resource "sdwan_transport_wan_vpn_interface_ipsec_feature" "example" { - Choices: `main`, `aggressive` - Default value: `main` - `ike_integrity_protocol_variable` (String) Variable name +- `ike_preshared_key` (String) Use preshared key to authenticate IKE peer - `ike_preshared_key_variable` (String) Variable name - `ike_rekey_interval` (Number) IKE rekey interval <60..86400> seconds - Range: `60`-`86400` @@ -112,6 +104,7 @@ resource "sdwan_transport_wan_vpn_interface_ipsec_feature" "example" { - Default value: `1` - `interface_description` (String) Interface description - `interface_description_variable` (String) Variable name +- `interface_name` (String) Interface name: IPsec when present - `interface_name_variable` (String) Variable name - `ip_mtu` (Number) Interface MTU <68..9216>, in bytes - Range: `68`-`9216` @@ -129,7 +122,9 @@ resource "sdwan_transport_wan_vpn_interface_ipsec_feature" "example" { - Range: `64`-`4096` - Default value: `512` - `ipsec_replay_window_variable` (String) Variable name +- `ipv4_address` (String) - `ipv4_address_variable` (String) Variable name +- `ipv4_subnet_mask` (String) - 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 - `perfect_forward_secrecy` (String) IPsec perfect forward secrecy settings - Choices: `group-1`, `group-2`, `group-5`, `group-14`, `group-15`, `group-16`, `group-19`, `group-20`, `group-21`, `group-24`, `none` @@ -144,12 +139,17 @@ resource "sdwan_transport_wan_vpn_interface_ipsec_feature" "example" { - `tracker_id` (String) Enable tracker for this interface - `tracker_id_variable` (String) Variable name - `transport_wan_vpn_feature_id` (String) Transport WAN VPN Feature ID +- `tunnel_destination_ipv4_address` (String) - `tunnel_destination_ipv4_address_variable` (String) Variable name +- `tunnel_destination_ipv4_subnet_mask` (String) - 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` - `tunnel_destination_ipv4_subnet_mask_variable` (String) Variable name - `tunnel_route_via` (String) <1..32 characters> Interface name: ge0/<0-..> or ge0/<0-..>.vlanid - `tunnel_route_via_variable` (String) Variable name +- `tunnel_source_interface` (String) <1..32 characters> Interface name: ge0/<0-..> or ge0/<0-..>.vlanid - `tunnel_source_interface_variable` (String) Variable name +- `tunnel_source_ipv4_address` (String) - `tunnel_source_ipv4_address_variable` (String) Variable name +- `tunnel_source_ipv4_subnet_mask` (String) - 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` - `tunnel_source_ipv4_subnet_mask_variable` (String) Variable name ### Read-Only diff --git a/docs/resources/transport_wan_vpn_interface_t1_e1_serial_feature.md b/docs/resources/transport_wan_vpn_interface_t1_e1_serial_feature.md index 35cc091b..e3f8fa30 100644 --- a/docs/resources/transport_wan_vpn_interface_t1_e1_serial_feature.md +++ b/docs/resources/transport_wan_vpn_interface_t1_e1_serial_feature.md @@ -85,7 +85,6 @@ resource "sdwan_transport_wan_vpn_interface_t1_e1_serial_feature" "example" { ### Required - `feature_profile_id` (String) Feature Profile ID -- `interface_name` (String) Serial Interface Name - slot/subslot/port:channel-group for T1/E1, slot/subslot/port for NIM-1T - `name` (String) The name of the Feature ### Optional @@ -103,6 +102,7 @@ resource "sdwan_transport_wan_vpn_interface_t1_e1_serial_feature" "example" { - `encapsulation` (String) Configure Encapsulation for interface - Choices: `hdlc`, `ppp`, `frame-relay` - `encapsulation_variable` (String) Variable name +- `interface_name` (String) Serial Interface Name - slot/subslot/port:channel-group for T1/E1, slot/subslot/port for NIM-1T - `interface_name_variable` (String) Variable name - `ip_mtu` (Number) Set ip mtu - Range: `576`-`9216` diff --git a/gen/definitions/profile_parcels/service_object_tracker.yaml b/gen/definitions/profile_parcels/service_object_tracker.yaml index 6fb69df3..e566ba8a 100644 --- a/gen/definitions/profile_parcels/service_object_tracker.yaml +++ b/gen/definitions/profile_parcels/service_object_tracker.yaml @@ -14,9 +14,9 @@ attributes: test_value: sdwan_service_feature_profile.test.id - model_name: objectId tf_name: object_tracker_id - mandatory: true example: 10 test_value: '10' + minimum_test_value: '10' - model_name: objectTrackerType mandatory: true example: Interface diff --git a/gen/definitions/profile_parcels/service_object_tracker_group.yaml b/gen/definitions/profile_parcels/service_object_tracker_group.yaml index 0428c810..9c775ab4 100644 --- a/gen/definitions/profile_parcels/service_object_tracker_group.yaml +++ b/gen/definitions/profile_parcels/service_object_tracker_group.yaml @@ -14,9 +14,9 @@ attributes: test_value: sdwan_service_feature_profile.test.id - model_name: objectId tf_name: object_tracker_id - mandatory: true example: 10 test_value: '10' + minimum_test_value: '10' - model_name: trackerRefs tf_name: tracker_elements attributes: diff --git a/gen/definitions/profile_parcels/transport_wan_vpn_interface_gre.yaml b/gen/definitions/profile_parcels/transport_wan_vpn_interface_gre.yaml index ea941660..71c6ec3a 100644 --- a/gen/definitions/profile_parcels/transport_wan_vpn_interface_gre.yaml +++ b/gen/definitions/profile_parcels/transport_wan_vpn_interface_gre.yaml @@ -21,8 +21,9 @@ attributes: - model_name: ifName tf_name: interface_name data_path: [basic] - mandatory: true example: gre1 + test_value: '"gre1"' + minimum_test_value: '"gre1"' - model_name: description tf_name: interface_description data_path: [basic] @@ -30,13 +31,15 @@ attributes: - model_name: address tf_name: ipv4_address data_path: [basic, address] - mandatory: true example: 70.1.1.1 + test_value: '"70.1.1.1"' + minimum_test_value: '"70.1.1.1"' - model_name: mask tf_name: ipv4_subnet_mask data_path: [basic, address] - mandatory: true example: 255.255.255.0 + test_value: '"255.255.255.0"' + minimum_test_value: '"255.255.255.0"' - model_name: shutdown data_path: [basic] example: true @@ -62,8 +65,9 @@ attributes: - model_name: tunnelDestination tf_name: tunnel_destination_ipv4_address data_path: [basic] - mandatory: true example: 79.1.1.1 + test_value: '"79.1.1.1"' + minimum_test_value: '"79.1.1.1"' - model_name: mtu tf_name: ip_mtu data_path: [basic] diff --git a/gen/definitions/profile_parcels/transport_wan_vpn_interface_ipsec.yaml b/gen/definitions/profile_parcels/transport_wan_vpn_interface_ipsec.yaml index 8811b828..f33505c5 100644 --- a/gen/definitions/profile_parcels/transport_wan_vpn_interface_ipsec.yaml +++ b/gen/definitions/profile_parcels/transport_wan_vpn_interface_ipsec.yaml @@ -20,8 +20,9 @@ attributes: test_value: sdwan_transport_wan_vpn_feature.test.id - model_name: ifName tf_name: interface_name - mandatory: true example: ipsec987 + test_value: '"ipsec987"' + minimum_test_value: '"ipsec987"' - model_name: shutdown example: true - model_name: description @@ -30,41 +31,49 @@ attributes: - model_name: address tf_name: ipv4_address data_path: [address] - mandatory: true example: 9.7.5.4 + test_value: '"9.7.5.4"' + minimum_test_value: '"9.7.5.4"' - model_name: mask tf_name: ipv4_subnet_mask data_path: [address] - mandatory: true example: 255.255.255.0 + test_value: '"255.255.255.0"' + minimum_test_value: '"255.255.255.0"' - model_name: address tf_name: tunnel_source_ipv4_address data_path: [tunnelSource] - mandatory: true example: 1.3.5.88 + test_value: '"1.3.5.88"' + minimum_test_value: '"1.3.5.88"' - model_name: mask tf_name: tunnel_source_ipv4_subnet_mask data_path: [tunnelSource] - mandatory: true example: 255.255.255.0 + test_value: '"255.255.255.0"' + minimum_test_value: '"255.255.255.0"' - model_name: tunnelSourceInterface tf_name: tunnel_source_interface - mandatory: true example: GigabitEthernet8 + test_value: '"GigabitEthernet8"' + minimum_test_value: '"GigabitEthernet8"' - model_name: address tf_name: tunnel_destination_ipv4_address data_path: [tunnelDestination] - mandatory: true example: 2.55.67.99 + test_value: '"2.55.67.99"' + minimum_test_value: '"2.55.67.99"' - model_name: mask tf_name: tunnel_destination_ipv4_subnet_mask data_path: [tunnelDestination] - mandatory: true example: 255.255.255.0 + test_value: '"255.255.255.0"' + minimum_test_value: '"255.255.255.0"' - model_name: application tf_name: application_tunnel_type - mandatory: true example: none + test_value: '"none"' + minimum_test_value: '"none"' - model_name: tcpMssAdjust tf_name: tcp_mss example: 1460 @@ -79,8 +88,9 @@ attributes: example: 3 - model_name: preSharedSecret tf_name: ike_preshared_key - mandatory: true example: 123 + test_value: '"123"' + minimum_test_value: '"123"' - model_name: ikeVersion example: 1 - model_name: ikeMode diff --git a/gen/definitions/profile_parcels/transport_wan_vpn_interface_t1_e1_serial.yaml b/gen/definitions/profile_parcels/transport_wan_vpn_interface_t1_e1_serial.yaml index b817f960..768e796e 100644 --- a/gen/definitions/profile_parcels/transport_wan_vpn_interface_t1_e1_serial.yaml +++ b/gen/definitions/profile_parcels/transport_wan_vpn_interface_t1_e1_serial.yaml @@ -21,8 +21,9 @@ attributes: - model_name: shutdown example: true - model_name: interfaceName - mandatory: true example: Serial0 + test_value: '"Serial0"' + minimum_test_value: '"Serial0"' - model_name: address tf_name: ipv4_address data_path: [addressV4] diff --git a/internal/provider/data_source_sdwan_transport_wan_vpn_interface_gre_feature_test.go b/internal/provider/data_source_sdwan_transport_wan_vpn_interface_gre_feature_test.go index 54305cd3..3c6ddf6a 100644 --- a/internal/provider/data_source_sdwan_transport_wan_vpn_interface_gre_feature_test.go +++ b/internal/provider/data_source_sdwan_transport_wan_vpn_interface_gre_feature_test.go @@ -33,13 +33,9 @@ func TestAccDataSourceSdwanTransportWANVPNInterfaceGREProfileParcel(t *testing.T t.Skip("skipping test, set environment variable SDWAN_2012") } var checks []resource.TestCheckFunc - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "interface_name", "gre1")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "interface_description", "gre1")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "ipv4_address", "70.1.1.1")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "ipv4_subnet_mask", "255.255.255.0")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "shutdown", "true")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "tunnel_source_ipv4_address", "78.1.1.1")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "tunnel_destination_ipv4_address", "79.1.1.1")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "ip_mtu", "1500")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "tcp_mss", "1460")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_gre_feature.test", "clear_dont_fragment", "false")) diff --git a/internal/provider/data_source_sdwan_transport_wan_vpn_interface_ipsec_feature_test.go b/internal/provider/data_source_sdwan_transport_wan_vpn_interface_ipsec_feature_test.go index f88cc95c..bd8e2f52 100644 --- a/internal/provider/data_source_sdwan_transport_wan_vpn_interface_ipsec_feature_test.go +++ b/internal/provider/data_source_sdwan_transport_wan_vpn_interface_ipsec_feature_test.go @@ -33,23 +33,13 @@ func TestAccDataSourceSdwanTransportWANVPNInterfaceIPSECProfileParcel(t *testing t.Skip("skipping test, set environment variable SDWAN_2012") } var checks []resource.TestCheckFunc - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "interface_name", "ipsec987")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "shutdown", "true")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "interface_description", "ipsec987")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ipv4_address", "9.7.5.4")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ipv4_subnet_mask", "255.255.255.0")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_source_ipv4_address", "1.3.5.88")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_source_ipv4_subnet_mask", "255.255.255.0")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_source_interface", "GigabitEthernet8")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_destination_ipv4_address", "2.55.67.99")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_destination_ipv4_subnet_mask", "255.255.255.0")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "application_tunnel_type", "none")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tcp_mss", "1460")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "clear_dont_fragment", "false")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ip_mtu", "1500")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "dpd_interval", "10")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "dpd_retries", "3")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ike_preshared_key", "123")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ike_version", "1")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ike_integrity_protocol", "main")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ike_rekey_interval", "14400")) diff --git a/internal/provider/data_source_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature_test.go b/internal/provider/data_source_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature_test.go index 22489df7..8b61d349 100644 --- a/internal/provider/data_source_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature_test.go +++ b/internal/provider/data_source_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature_test.go @@ -34,7 +34,6 @@ func TestAccDataSourceSdwanTransportWANVPNInterfaceT1E1SerialProfileParcel(t *te } var checks []resource.TestCheckFunc checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "shutdown", "true")) - checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "interface_name", "Serial0")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "ipv4_address", "1.2.3.4")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "ipv4_subnet_mask", "0.0.0.0")) checks = append(checks, resource.TestCheckResourceAttr("data.sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "ipv6_address", "2001:0:0:1::/64")) diff --git a/internal/provider/resource_sdwan_service_object_tracker_feature.go b/internal/provider/resource_sdwan_service_object_tracker_feature.go index 2010b457..6ecb6878 100644 --- a/internal/provider/resource_sdwan_service_object_tracker_feature.go +++ b/internal/provider/resource_sdwan_service_object_tracker_feature.go @@ -91,7 +91,7 @@ func (r *ServiceObjectTrackerProfileParcelResource) Schema(ctx context.Context, }, "object_tracker_id": schema.Int64Attribute{ MarkdownDescription: helpers.NewAttributeDescription("Object tracker ID").AddIntegerRangeDescription(1, 1000).String, - Required: true, + Optional: true, Validators: []validator.Int64{ int64validator.Between(1, 1000), }, diff --git a/internal/provider/resource_sdwan_service_object_tracker_group_feature.go b/internal/provider/resource_sdwan_service_object_tracker_group_feature.go index 49073e0c..c88e3611 100644 --- a/internal/provider/resource_sdwan_service_object_tracker_group_feature.go +++ b/internal/provider/resource_sdwan_service_object_tracker_group_feature.go @@ -91,7 +91,7 @@ func (r *ServiceObjectTrackerGroupProfileParcelResource) Schema(ctx context.Cont }, "object_tracker_id": schema.Int64Attribute{ MarkdownDescription: helpers.NewAttributeDescription("Object ID").AddIntegerRangeDescription(1, 1000).String, - Required: true, + Optional: true, Validators: []validator.Int64{ int64validator.Between(1, 1000), }, diff --git a/internal/provider/resource_sdwan_transport_wan_vpn_interface_gre_feature.go b/internal/provider/resource_sdwan_transport_wan_vpn_interface_gre_feature.go index dd56ed3c..5a6c01b7 100644 --- a/internal/provider/resource_sdwan_transport_wan_vpn_interface_gre_feature.go +++ b/internal/provider/resource_sdwan_transport_wan_vpn_interface_gre_feature.go @@ -95,7 +95,7 @@ func (r *TransportWANVPNInterfaceGREProfileParcelResource) Schema(ctx context.Co }, "interface_name": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Interface name (1..255)").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.LengthBetween(4, 6), stringvalidator.RegexMatches(regexp.MustCompile(`^gre([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$`), ""), @@ -118,7 +118,7 @@ func (r *TransportWANVPNInterfaceGREProfileParcelResource) Schema(ctx context.Co }, "ipv4_address": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("").String, - Required: true, + Optional: true, }, "ipv4_address_variable": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Variable name").String, @@ -126,7 +126,7 @@ func (r *TransportWANVPNInterfaceGREProfileParcelResource) Schema(ctx context.Co }, "ipv4_subnet_mask": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("").AddStringEnumDescription("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").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.OneOf("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"), }, @@ -186,7 +186,7 @@ func (r *TransportWANVPNInterfaceGREProfileParcelResource) Schema(ctx context.Co }, "tunnel_destination_ipv4_address": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Tunnel destination IP Address").String, - Required: true, + Optional: true, }, "tunnel_destination_ipv4_address_variable": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Variable name").String, diff --git a/internal/provider/resource_sdwan_transport_wan_vpn_interface_gre_feature_test.go b/internal/provider/resource_sdwan_transport_wan_vpn_interface_gre_feature_test.go index 5f2252b4..a8f3048a 100644 --- a/internal/provider/resource_sdwan_transport_wan_vpn_interface_gre_feature_test.go +++ b/internal/provider/resource_sdwan_transport_wan_vpn_interface_gre_feature_test.go @@ -33,13 +33,9 @@ func TestAccSdwanTransportWANVPNInterfaceGREProfileParcel(t *testing.T) { t.Skip("skipping test, set environment variable SDWAN_2012") } var checks []resource.TestCheckFunc - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "interface_name", "gre1")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "interface_description", "gre1")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "ipv4_address", "70.1.1.1")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "ipv4_subnet_mask", "255.255.255.0")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "shutdown", "true")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "tunnel_source_ipv4_address", "78.1.1.1")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "tunnel_destination_ipv4_address", "79.1.1.1")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "ip_mtu", "1500")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "tcp_mss", "1460")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_gre_feature.test", "clear_dont_fragment", "false")) diff --git a/internal/provider/resource_sdwan_transport_wan_vpn_interface_ipsec_feature.go b/internal/provider/resource_sdwan_transport_wan_vpn_interface_ipsec_feature.go index 92e9f04b..440aa65c 100644 --- a/internal/provider/resource_sdwan_transport_wan_vpn_interface_ipsec_feature.go +++ b/internal/provider/resource_sdwan_transport_wan_vpn_interface_ipsec_feature.go @@ -95,7 +95,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "interface_name": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Interface name: IPsec when present").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.LengthBetween(6, 8), stringvalidator.RegexMatches(regexp.MustCompile(`^ipsec\d{1,3}$`), ""), @@ -126,7 +126,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "ipv4_address": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("").String, - Required: true, + Optional: true, }, "ipv4_address_variable": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Variable name").String, @@ -134,7 +134,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "ipv4_subnet_mask": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("").AddStringEnumDescription("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").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.OneOf("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"), }, @@ -145,7 +145,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "tunnel_source_ipv4_address": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("").String, - Required: true, + Optional: true, }, "tunnel_source_ipv4_address_variable": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Variable name").String, @@ -153,7 +153,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "tunnel_source_ipv4_subnet_mask": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("").AddStringEnumDescription("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").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.OneOf("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"), }, @@ -164,7 +164,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "tunnel_source_interface": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("<1..32 characters> Interface name: ge0/<0-..> or ge0/<0-..>.vlanid").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.LengthBetween(3, 32), stringvalidator.RegexMatches(regexp.MustCompile(`(ATM|ATM-ACR|AppGigabitEthernet|AppNav-Compress|AppNav-UnCompress|Async|BD-VIF|BDI|CEM|CEM-ACR|Cellular|Dialer|Embedded-Service-Engine|Ethernet|Ethernet-Internal|FastEthernet|FiftyGigabitEthernet|FiveGigabitEthernet|FortyGigabitEthernet|FourHundredGigE|GMPLS|GigabitEthernet|Group-Async|HundredGigE|L2LISP|LISP|Loopback|MFR|Multilink|Port-channel|SM|Serial|Service-Engine|TenGigabitEthernet|Tunnel|TwentyFiveGigE|TwentyFiveGigabitEthernet|TwoGigabitEthernet|TwoHundredGigE|Vif|Virtual-PPP|Virtual-Template|VirtualPortGroup|Vlan|Wlan-GigabitEthernet|nat64|nat66|ntp|nve|ospfv3|overlay|pseudowire|ucse|vasileft|vasiright|vmi)([0-9]*(. ?[1-9][0-9]*)*|[0-9/]+|[0-9]+/[0-9]+/[0-9]+:[0-9]+|[0-9]+/[0-9]+/[0-9]+|[0-9]+/[0-9]+|[0-9]+)`), ""), @@ -176,7 +176,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "tunnel_destination_ipv4_address": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("").String, - Required: true, + Optional: true, }, "tunnel_destination_ipv4_address_variable": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Variable name").String, @@ -184,7 +184,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "tunnel_destination_ipv4_subnet_mask": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("").AddStringEnumDescription("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").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.OneOf("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"), }, @@ -195,7 +195,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "application_tunnel_type": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Enable Application Tunnel Type").AddStringEnumDescription("none", "sig").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.OneOf("none", "sig"), }, @@ -258,7 +258,7 @@ func (r *TransportWANVPNInterfaceIPSECProfileParcelResource) Schema(ctx context. }, "ike_preshared_key": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Use preshared key to authenticate IKE peer").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.LengthBetween(1, 127), }, diff --git a/internal/provider/resource_sdwan_transport_wan_vpn_interface_ipsec_feature_test.go b/internal/provider/resource_sdwan_transport_wan_vpn_interface_ipsec_feature_test.go index 505f4566..217eabd6 100644 --- a/internal/provider/resource_sdwan_transport_wan_vpn_interface_ipsec_feature_test.go +++ b/internal/provider/resource_sdwan_transport_wan_vpn_interface_ipsec_feature_test.go @@ -33,23 +33,13 @@ func TestAccSdwanTransportWANVPNInterfaceIPSECProfileParcel(t *testing.T) { t.Skip("skipping test, set environment variable SDWAN_2012") } var checks []resource.TestCheckFunc - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "interface_name", "ipsec987")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "shutdown", "true")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "interface_description", "ipsec987")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ipv4_address", "9.7.5.4")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ipv4_subnet_mask", "255.255.255.0")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_source_ipv4_address", "1.3.5.88")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_source_ipv4_subnet_mask", "255.255.255.0")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_source_interface", "GigabitEthernet8")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_destination_ipv4_address", "2.55.67.99")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tunnel_destination_ipv4_subnet_mask", "255.255.255.0")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "application_tunnel_type", "none")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "tcp_mss", "1460")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "clear_dont_fragment", "false")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ip_mtu", "1500")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "dpd_interval", "10")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "dpd_retries", "3")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ike_preshared_key", "123")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ike_version", "1")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ike_integrity_protocol", "main")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_ipsec_feature.test", "ike_rekey_interval", "14400")) diff --git a/internal/provider/resource_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.go b/internal/provider/resource_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.go index f20089f6..8fe6dc7b 100644 --- a/internal/provider/resource_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.go +++ b/internal/provider/resource_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.go @@ -103,7 +103,7 @@ func (r *TransportWANVPNInterfaceT1E1SerialProfileParcelResource) Schema(ctx con }, "interface_name": schema.StringAttribute{ MarkdownDescription: helpers.NewAttributeDescription("Serial Interface Name - slot/subslot/port:channel-group for T1/E1, slot/subslot/port for NIM-1T").String, - Required: true, + Optional: true, Validators: []validator.String{ stringvalidator.LengthBetween(7, 255), stringvalidator.RegexMatches(regexp.MustCompile(`^(Serial)([0-9]{1,}(. ?[1-9][0-9]*)*|[0-9/]+|[0-9]+/[0-9]+/[0-9]+:[0-9]+|[0-9]+/[0-9]+/[0-9]+|[0-9]+/[0-9]+|[0-9]+)`), ""), diff --git a/internal/provider/resource_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature_test.go b/internal/provider/resource_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature_test.go index b113288e..e82fc9ae 100644 --- a/internal/provider/resource_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature_test.go +++ b/internal/provider/resource_sdwan_transport_wan_vpn_interface_t1_e1_serial_feature_test.go @@ -34,7 +34,6 @@ func TestAccSdwanTransportWANVPNInterfaceT1E1SerialProfileParcel(t *testing.T) { } var checks []resource.TestCheckFunc checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "shutdown", "true")) - checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "interface_name", "Serial0")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "ipv4_address", "1.2.3.4")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "ipv4_subnet_mask", "0.0.0.0")) checks = append(checks, resource.TestCheckResourceAttr("sdwan_transport_wan_vpn_interface_t1_e1_serial_feature.test", "ipv6_address", "2001:0:0:1::/64")) diff --git a/templates/guides/changelog.md.tmpl b/templates/guides/changelog.md.tmpl index 23f841b2..e264f946 100644 --- a/templates/guides/changelog.md.tmpl +++ b/templates/guides/changelog.md.tmpl @@ -52,7 +52,6 @@ description: |- - Fix issue when reading deleted `sdwan_configuration_group` resource, [link](https://github.com/CiscoDevNet/terraform-provider-sdwan/issues/297) - BREAKING CHANGE: Rename `service_lan_vpn_profile_parcel_id` attribute of `sdwan_service_lan_vpn_interface_ethernet_feature`, `sdwan_service_lan_vpn_interface_gre_feature`, `sdwan_service_lan_vpn_interface_ipsec_feature` and `sdwan_service_lan_vpn_interface_svi_feature` resource to `service_lan_vpn_feature_id` - BREAKING CHANGE: Rename `transport_management_vpn_profile_parcel_id` attribute of `sdwan_transport_management_vpn_interface_ethernet_feature` resource to `transport_management_vpn_feature_id` -- - BREAKING CHANGE: Rename `transport_wan_vpn_profile_parcel_id` attribute of `sdwan_transport_wan_vpn_interface_cellular_feature`, `sdwan_transport_wan_vpn_interface_ethernet_feature`, `sdwan_transport_wan_vpn_interface_gre_feature`, `sdwan_transport_wan_vpn_interface_ipsec_feature` and `sdwan_transport_wan_vpn_interface_t1_e1_serial_feature` resource to `transport_wan_vpn_feature_id` ## 0.3.13