From 2fc4409ea49369d4e5c128f69806421e8525f686 Mon Sep 17 00:00:00 2001
From: akinross <akinross@cisco.com>
Date: Thu, 31 Oct 2024 18:09:33 +0100
Subject: [PATCH] [bugfix] Fix fex and micro_seg_vlan attributes in
 resource_mso_schema_site_anp_epg_bulk_staticport to be correctly set when
 index shift occur in the static_ports list

---
 ...mso_schema_site_anp_epg_bulk_staticport.go | 27 ++++++++++++-------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/mso/resource_mso_schema_site_anp_epg_bulk_staticport.go b/mso/resource_mso_schema_site_anp_epg_bulk_staticport.go
index 3aba5575..cff14d90 100644
--- a/mso/resource_mso_schema_site_anp_epg_bulk_staticport.go
+++ b/mso/resource_mso_schema_site_anp_epg_bulk_staticport.go
@@ -78,8 +78,7 @@ func resourceMSOSchemaSiteAnpEpgBulkStaticPort() *schema.Resource {
 						},
 						"leaf": {
 							Type:         schema.TypeString,
-							Optional:     true,
-							Computed:     true,
+							Required:     true,
 							ValidateFunc: validation.StringLenBetween(1, 1000),
 						},
 						"path": {
@@ -93,28 +92,36 @@ func resourceMSOSchemaSiteAnpEpgBulkStaticPort() *schema.Resource {
 						},
 						"deployment_immediacy": {
 							Type:     schema.TypeString,
-							Optional: true,
-							Computed: true,
+							Required: true,
+							// Remove computed because when a user updates the list and causes index shifts
+							//  the deployment_immediacy state value will be used at the location of the list index when not provided in config.
+							// Computed:     true,
 							ValidateFunc: validation.StringInSlice([]string{
 								"immediate",
 								"lazy",
 							}, false),
 						},
 						"fex": {
-							Type:         schema.TypeString,
-							Optional:     true,
-							Computed:     true,
+							Type:     schema.TypeString,
+							Optional: true,
+							// Remove computed because when a user updates the list and causes index shifts
+							//  the fex state value will be used at the location of the list index when not provided in config.
+							// Computed:     true,
 							ValidateFunc: validation.StringIsNotEmpty,
 						},
 						"micro_seg_vlan": {
 							Type:     schema.TypeInt,
 							Optional: true,
-							Computed: true,
+							// Remove computed because when a user updates the list and causes index shifts
+							//  the micro_seg_vlan state value will be used at the location of the list index when not provided in config.
+							// Computed: true,
 						},
 						"mode": {
 							Type:     schema.TypeString,
-							Optional: true,
-							Computed: true,
+							Required: true,
+							// Remove computed because when a user updates the list and causes index shifts
+							//  the mode state value will be used at the location of the list index when not provided in config.
+							// Computed:     true,
 							ValidateFunc: validation.StringInSlice([]string{
 								"native",
 								"regular",