Update ZAP to v2024.03.14-nightly. (#32564)

This fixes the endpoint_config representation of "endpoint with no specific
parent endpoint set" to match the SDK internal representation, so we can remove
some code that was working around the representation mismatch.
diff --git a/scripts/setup/zap.json b/scripts/setup/zap.json
index 1945fec..173a686 100644
--- a/scripts/setup/zap.json
+++ b/scripts/setup/zap.json
@@ -8,13 +8,13 @@
                 "mac-amd64",
                 "windows-amd64"
             ],
-            "tags": ["version:2@v2024.02.29-nightly.1"]
+            "tags": ["version:2@v2024.03.14-nightly.1"]
         },
         {
             "_comment": "Always get the amd64 version on mac until usable arm64 zap build is available",
             "path": "fuchsia/third_party/zap/mac-amd64",
             "platforms": ["mac-arm64"],
-            "tags": ["version:2@v2024.02.29-nightly.1"]
+            "tags": ["version:2@v2024.03.14-nightly.1"]
         }
     ]
 }
diff --git a/scripts/setup/zap.version b/scripts/setup/zap.version
index 4a877a4..6f551d6 100644
--- a/scripts/setup/zap.version
+++ b/scripts/setup/zap.version
@@ -1 +1 @@
-v2024.02.29-nightly
+v2024.03.14-nightly
diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
index 09b1744..ca2e15e 100644
--- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
+++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
@@ -3072,5 +3072,5 @@
 // Array of parent endpoints for each endpoint
 #define FIXED_PARENT_ENDPOINTS                                                                                                     \
     {                                                                                                                              \
-        0, 0, 0, 0                                                                                                                 \
+        kInvalidEndpointId, kInvalidEndpointId, kInvalidEndpointId, kInvalidEndpointId                                             \
     }
diff --git a/scripts/tools/zap/tests/outputs/lighting-app/app-templates/endpoint_config.h b/scripts/tools/zap/tests/outputs/lighting-app/app-templates/endpoint_config.h
index 0e6ba62..f04dead 100644
--- a/scripts/tools/zap/tests/outputs/lighting-app/app-templates/endpoint_config.h
+++ b/scripts/tools/zap/tests/outputs/lighting-app/app-templates/endpoint_config.h
@@ -1210,5 +1210,5 @@
 // Array of parent endpoints for each endpoint
 #define FIXED_PARENT_ENDPOINTS                                                                                                     \
     {                                                                                                                              \
-        0, 0                                                                                                                       \
+        kInvalidEndpointId, kInvalidEndpointId                                                                                     \
     }
diff --git a/scripts/tools/zap/zap_execution.py b/scripts/tools/zap/zap_execution.py
index fafe3e5..b5880f7 100644
--- a/scripts/tools/zap/zap_execution.py
+++ b/scripts/tools/zap/zap_execution.py
@@ -23,7 +23,7 @@
 # Use scripts/tools/zap/version_update.py to manage ZAP versioning as many
 # files may need updating for versions
 #
-MIN_ZAP_VERSION = '2024.2.29'
+MIN_ZAP_VERSION = '2024.3.14'
 
 
 class ZapTool:
diff --git a/src/app/util/attribute-storage.cpp b/src/app/util/attribute-storage.cpp
index 3bce63e..62e4631 100644
--- a/src/app/util/attribute-storage.cpp
+++ b/src/app/util/attribute-storage.cpp
@@ -214,16 +214,9 @@
         emAfEndpoints[ep].endpoint = fixedEndpoints[ep];
         emAfEndpoints[ep].deviceTypeList =
             Span<const EmberAfDeviceType>(&fixedDeviceTypeList[fixedDeviceTypeListOffsets[ep]], fixedDeviceTypeListLengths[ep]);
-        emAfEndpoints[ep].endpointType = &generatedEmberAfEndpointTypes[fixedEmberAfEndpointTypes[ep]];
-        emAfEndpoints[ep].dataVersions = currentDataVersions;
-        if (fixedParentEndpoints[ep] == 0)
-        {
-            emAfEndpoints[ep].parentEndpointId = kInvalidEndpointId;
-        }
-        else
-        {
-            emAfEndpoints[ep].parentEndpointId = fixedParentEndpoints[ep];
-        }
+        emAfEndpoints[ep].endpointType     = &generatedEmberAfEndpointTypes[fixedEmberAfEndpointTypes[ep]];
+        emAfEndpoints[ep].dataVersions     = currentDataVersions;
+        emAfEndpoints[ep].parentEndpointId = fixedParentEndpoints[ep];
 
         emAfEndpoints[ep].bitmask.Set(EmberAfEndpointOptions::isEnabled);
         emAfEndpoints[ep].bitmask.Set(EmberAfEndpointOptions::isFlatComposition);